간단한 문제임에도 불구하고 계속 오류가 나서 이렇게 정리를 해본다.
문제는 다음과 같다.
우선 햇갈렸던 부분은 2가지였다.
1. 어떻게 입력값을 받는가 ===> 해결: 그동안 문제를 풀 때 항상 map(~)의 형태로 받다보니 list로 간단히 받을 수 있는 방법을 까먹었었다...
2. 계속 str[i] == '2'라는 line에서 오류가 났다. 오류 형태는 index out of range. 즉, 지정해준 배열의 크기보다 계속 크게 무언가를 처리하려고 한다는 뜻이다. ---> 해결: for문에서 range(str_len)을 실수로 range(str_len+1)로 처리를 했다. 그러다보니 str[i]는 계속 정해준 str_len보다 하나 큰 값까지 접근을 하려고 해서 결국 out of range가 발생하는 것이었다.
이 두 부분이 해결되니, 코드가 아주 잘 돌아갔다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
str_len = int(input())
str = list(input())
# print(str[1])
cnt_2 = 0
cnt_e = 0
for i in range(str_len):
if str[i] == '2': # 여기서 계속 문제가 발생한다... list index out of range계속 발생 --> 이유.. for문의 range에서 str_len+1로 처리를 했었다...
cnt_2 = cnt_2 + 1
elif str[i] == 'e':
cnt_e = cnt_e + 1
if cnt_2 > cnt_e:
print(2)
elif cnt_2 < cnt_e:
print('e')
else:
print("yee")
|
cs |
출처: https://www.acmicpc.net/problem/17094
'코딩 문제풀이 및 연습 > Python 연습' 카테고리의 다른 글
[백준] 18398_HOMWRK 파이썬 (0) | 2021.07.18 |
---|---|
[백준] 17530_Buffoon 파이썬 (list 초기화!!!를 제대로 알자) (0) | 2021.07.18 |
[백준] 17010_Time to Decompress 파이썬 (str과 int를 space로 나눠서 동시에 입력받기) (0) | 2021.07.17 |
[백준]17009_Winning Score.py 파이썬 (두 가지 방법으로 풀기) (0) | 2021.07.17 |
[백준]16170_오늘의 날짜는 파이썬 (datetime, timedelta, year, month, day) (0) | 2021.07.17 |