반응형
문제
두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
입력
첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.
출력
첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.
풀이
a=[]
for i in range(10):
a.append(int(input()))
b=[]
b.append(a[0]%42)
for i in a:
ck=0 #같은게 있으면 1로 바꾸고 없으면 b에 추가해주기 위함
for j in b:
if i%42==j:
ck=1
if ck==0:
b.append(i%42)
print(len(b))
삽질 코드 내용
더보기
a=[]
for i in range(10):
a.append(int(input()))
b=[]
b.append(a[0]%42)
for i in a:
for j in b:
if i%42==j:
break
else:
b.append(i%42)
break #위에만 break해줄게 아니라 여기도 해줬어야 했음.
#안했더니 똑같은 숫자가 계속 추가되서 거의 무한반복 수준..
print(len(b))
무한반복 안된다고 해결된게 아니었음.. 리스트 전부와 i%42를 비교해야하는 상황인데 리스트 첫요소만 보고 끝내버림 그래서 1또는 10만 출력됨
오류 지적, 질문은 언제나 환영입니다.
반응형
'코딩 > 코딩테스트' 카테고리의 다른 글
[1546번] 백준 평균 풀이 - Python (0) | 2021.04.11 |
---|---|
[15596번] 백준 정수 N개의 합 풀이 - Python (0) | 2021.04.11 |
[2562번] 백준 최댓값 풀이 - Python (0) | 2021.03.29 |
[10818번] 백준 최소, 최대 풀이 - Python (0) | 2021.03.29 |
[1110번] 백준 더하기 사이클 풀이 - Python (0) | 2021.03.28 |