https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 42로 나눈 나머지를 새로운 리스트에 저장하고, 중복된 값을 제외시키는 과정이 필요하다. 1 : for문을 사용한 풀이법 arr = [] for i in range(10): a = int(input()) if a%42 not in arr: arr.append(a % 42) print(len(arr)) 새로운 리스트에 넣을 a%42(a를 42로 나눈 나머지)가 리스트 arr에 포함되어 있는지 확인하는 과정을 걸친 후, 마지막으로 리스트의 길이를 출력하는 방법. 2 : ..
https://www.acmicpc.net/problem/2920 2920번: 음계 다장조는 c d e f g a b C, 총 8개 음으로 이루어져있다. 이 문제에서 8개 음은 다음과 같이 숫자로 바꾸어 표현한다. c는 1로, d는 2로, ..., C를 8로 바꾼다. 1부터 8까지 차례대로 연주한다면 ascending, 8 www.acmicpc.net a = list(map(int, input().split(" "))) if a == [1, 2, 3, 4, 5, 6, 7, 8]: print('ascending') elif a == [8, 7, 6, 5, 4, 3, 2, 1]: print('descending') else : print('mixed') 그냥 이렇게 해도 풀리지만 내장되어 있는 함수를 사용해..
https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net *주의! 입력받은 두 수를 각각 거꾸로 뒤집었을 때, 둘 중 큰 값을 출력해야 한다. max() 함수를 이용하면 인자로 던져주는 값들 중 가장 큰 값을 반환받을 수 있다. 풀이 1 : 나눗셈을 이용 a = list(map(int, input().split())) newlst = [] for i in a: n1 = i // 100 n2 = (i - (n1*100)) // 10 n3 = i % 10 newlst...
https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문자열에서 단어는 공백으로 구분된다. 따라서 문자열 안에 있는 공백의 개수를 세거나, 문자열을 단어 단위로 나눠서 그 개수를 세는 방법으로 풀이가 가능하다. 1. 단어 단위로 나눠서 개수를 세는 방법 import sys s = sys.stdin.readline().split() sum = 0 for i in s: sum += 1 print(sum) 1 : s에 문자열을 입력 받고 공백을 기준..
https://www.acmicpc.net/problem/2884 2884번: 알람 시계 상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만, www.acmicpc.net 코드1 h, m = map(int, input().split()) if m < 45: h -= 1 if h < 0: h = 23 m = 60-45+m else : m -= 45 print(h, m) 입력한 시간보다 45분 빠른 값을 출력해야 한다. 입력한 시간이 45분보다 작으면 한시간을 빼고 m+=15를 해주면 원하는 값을 출력할 수 있다. m이 30이라고 가정하자. 30만큼 빼면 h값이 1 감소할 것이..
https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 내 코드 mul = 1 for i in range(3): num = int(input()) mul *= num lst_mul = list(str(mul)) new_lst = [0]*10 for i in range(len(lst_mul)): new_lst[int(lst_mul[i]) % 10] += 1 for i in range(len(new_lst)): print(new_lst[i]) 3개의 값을 모두 곱한 값을 mul에 바인딩한다. mul의 값을 리..