https://www.acmicpc.net/problem/3052
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
대학교에서 c언어로만 풀다가 아직 파이썬 for문이 완전히 적응이 안된터라 c로 생각하고 문제를 풀었는데
얼추 풀리네..? 라고 생각하다가 마지막에 이제 나머지들 list에 다 넣고 이제 중복되지 않는 것들을 골라냈어야 됐는데
그게 헷갈리다 결국 여기서 멈추게 되었는데, 그래서 알아보니 파이썬은 알아서 중복을 없애주는 함수가 있었다..
import sys
import math
numbers = []
ans = []
for i in range(10):
a = int(sys.stdin.readline())
numbers.append(a)
for i in range(10):
b = numbers[i] % 42
ans.append(b)
global total
total = 0
for i in range(10):
cnt = 0
for j in range(10):
if ans[i] == ans[j]:
cnt = cnt + 1
if cnt == 1:
total = total + 1
print(total)
그것은 바로 set!
알아서 정렬해주는 c에서는 (내가 몰랐을 수도 있지만) 없던 기능이 있어서
다시한번 처음 코딩을 하는 사람들한테 파이썬을 추천하는 이유가 있구나 싶었다...
그래서 나온 알고리즘은! 아래!
numbers = []
for i in range(10):
num = int(input())
num = num % 42
numbers.append(num)
numbers = set(numbers)
print(len(numbers))
이렇게 간단하게 나올 일이 있었네.. 싶었다..
for문도 위에 보면 확인한다고 두세번은 쓴 것 같은데,,
조금 더 간결하고 파이썬에 있는 함수들에 대해서도 좀 더 많이 알아가서
코테에 도움이 되는 기능들 많이 알고 싶다
하나 알아갔으니 다음번엔 잘 써먹자!!
백준 4344번 <평균은 넘겠지> [파이썬] (0) | 2022.07.13 |
---|---|
백준 8958번 <OX퀴즈> [파이썬] (0) | 2022.07.13 |
백준 2739번 <구구단> [파이썬] (0) | 2022.07.11 |
백준 2480번 <주사위 세개> [파이썬] (0) | 2022.07.10 |
백준 2525번 <오븐 시계> [파이썬] (0) | 2022.07.10 |