문제
코드
My answer
import sys
input=sys.stdin.readline
a=int(input()) #총 인원수
t=int(input()) #번쨰
q=input().rstrip() #0=뻔/1=데기
cnt=0
command="01010011"
if(t>4):
n=int(t/4+0.9)
tmp=[0]*n
command=""
for i in range(0,n):
tmp[i]="0101"+(i+2)*'0'+(i+2)*'1'
command+=tmp[i]
for i in range(len(command)):
if(command[i]==q):
cnt+=1
if(cnt==t):
print(i%a)
break
Another answer
s=[*map(int,''.join('0101'+'0'*n+'1'*n for n in range(2,200)))]
a,t,g=map(int,open(0).read().split())
i=0
while 1:
if s[i]==g:
t-=1
if t==0:break
i+=1
print((i)%a)
풀이
화가난다. 이번문제도 쉬운데 또 이상한 것 때문에 시간낭비를 했다. 분명 코드 다짜고 if문에서 문자 비교를 하고있는데 출력해보면 계속 똑같이 나오는데 똑같지 않다고 뜨는것이다. 그래서 type()도 써보고 bool형도 써보고 다했는데 계속 똑같아서 노트북을 부수려던 찰나 내가 문자입력을 받을 때 input()을 안쓰고 sys.stdin.readline()을 썻다는 사실이 기억났고 두 입력방법의 차이가 개행문자라는 것도 기억났다....... stdin으로 입력받고 int()형으로 감싸주면 아무 상관없어지지만 내 코드에서 q를 입력받을 때 q=sys.stdin.readline() 여기서 끝내버리면 q(엔터)가 문자형으로 받아들여지는 것이다..맨날 int형으로 감싸서 바로 못떠올렸었다....... 다시한번 기억해라 stdin으로 받는건 엔터까지 같이 들어가니 rstrip()으로 없애주던가 아니면 변수형함수로 감싸서 없애주던가...
728x90
반응형
'코딩테스트 > 백준[Python]' 카테고리의 다른 글
[Python] 백준 #2422 -한윤정이 이탈리아에 가서 아이스크림을 사먹는데 [try_again] (0) | 2022.01.05 |
---|---|
[Python] 백준 #1969- DNA (0) | 2022.01.05 |
[Python] 백준 #18312- 시각 (0) | 2022.01.05 |
[Python] 백준 #19536- 수학은 비대면 강의입니다. (0) | 2022.01.05 |
[Python] 백준 #2231- 분해합 (0) | 2022.01.04 |