썸네일 [PYTHON] 3052 나머지 - 중복을 제거하는 법 set https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 문제 풀이 10개의 수를 리스트에 담는다. 리스트에서 요소 하나씩 순회하면서 42로 나눈 나머지 값을 저장한다. 중복을 제거하고 그 개수를 출력한다. 중복을 제거할땐 set을 활용한다. solution import sys Nber_list = [int(sys.stdin.readline().strip()) for _ in range(10)] # map을 활용하여 Nber_list의 요소 하나씩 42로 나눈 나머지 값을 저장함 remainder_list = list(ma..
썸네일 [PYTHON] 2908 상수 - reverse() https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 문제 풀이 [::-1]로 문자열을 뒤집고 max()로 최대값을 출력함 solution import sys x,y = sys.stdin.readline().strip().split() print(max(int(x[::-1]),int(y[::-1]))) # x = '734' # y = '893' # int(x[::-1]) # 437 # int(y[::-1]) # 398 삽질 reverse()로 문자열을 뒤집으려고..
썸네일 [PYTHON] 1152 단어의 개수 - split 정리 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문제 풀이 split()으로 공백을 기준으로 문자열을 나누고(list형태로 반환) 리스트의 길이를 출력함. solution import sys data = sys.stdin.readline().strip().split() # ['The', 'Curious', 'Case', 'of', 'Benjamin', 'Button'] print(len(data)) # 6 새롭게 배운점 알고리즘 문제를 풀..
썸네일 [PYTHON] 1157 단어 공부 - 문자열 변경 메서드 정리(대문자, 소문자, 대문자 소문자 반대로 반환, 첫 글자 대문자) https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 풀이 출력을 대문자로 하기때문에 input값을 대문자로 변경한다. dict에 중복된 값과 중복된 개수를 저장한다. dict의 value의 최대값이 여러 개이면 ?을 출력하고, 하나이면 그 value 최대값을 출력한다. solution import sys str = (sys.stdin.readline().strip()).upper() # 입력받은 문자열을 모두 대문자로 변경 result = {} for w in list(set..
썸네일 [PYTHON] 5597 과제 안 내신 분...? https://www.acmicpc.net/problem/5597 5597번: 과제 안 내신 분..? X대학 M교수님은 프로그래밍 수업을 맡고 있다. 교실엔 학생이 30명이 있는데, 학생 명부엔 각 학생별로 1번부터 30번까지 출석번호가 붙어 있다. 교수님이 내준 특별과제를 28명이 제출했는데, www.acmicpc.net 문제 풀이 출석 번호 1~30번 중 28명만 입력되었고 나머지 2명의 출석 번호를 출력하는 문제 출석 번호는 오름차순으로 출력합니다. soltion - 실패 import sys Nber_list = [int(sys.stdin.readline().strip()) for _ in range(1,29)] student = [] for i in range(28): if i+1 not in N..
썸네일 [PYTHON] 1712 손익분기점 ZeroDivisionError https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 문제 풀이 방정식을 나타낸다. A + Bx < Cx A/(B-C) 12.1의 내림 12)이다. 만약 B-C가 음수이면 손익 분기점을 내지 못해 -1를 출력한다. 만약 B-C가 0이면 0으로 나눌수 없기 때문에 -1를 출력한다. solution - 실패 B-C가 0일때를 고려하지 못했다. ZeroDivisionError 발생했다. import sys import math A,B,C = map(int, s..
썸네일 [PYTHON] 10822 더하기 https://www.acmicpc.net/problem/10822 10822번: 더하기 첫째 줄에 문자열 S가 주어진다. S의 길이는 최대 100이다. 포함되어있는 정수는 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제풀이 입력값을 쉼표(,)로 구분하여 map을 통해 요소 하나씩 int로 바꾼다. sum()을 통해 요소들을 다 더한다. solution import sys numbers = map(int, sys.stdin.readline().strip().split(',')) print(sum(numbers))
썸네일 [PYTHON] 5622 다이얼 - dictionary로 푸는법/ list로 푸는법 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 문제 풀이 숫자 1이 2초가 걸리기 때문에 숫자 2는 3초가 걸린다. 숫자 2부터 문자가 시작이고 문자를 배열에 담을거니깐 index는 0이다. 결론은 숫자 2는 index가 0이고 3초가 걸리고 'ABC' 를 의미하므로 딕셔너리를 만들러 key로는 문자를 넣고 value값으로 초를 넣어 계산한다. index+3을 해주어 초를 계산해준다. 입력값 문자를 받아 딕셔너리의 key값에 들어있으면 value값인 초를 누적합하여 최종 걸린 시간을 출력해준다. solution import s..
썸네일 [PYTHON] 2577 숫자의 개수 - 한줄씩출력(for, print(str,sep='\n')) https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net 문제 풀이 A,B,C를 곱한다. key값으로 0~9를 두고 value로 중복 개수를 저장한다. 중복개수인 value값만 한 줄씩 출력한다. solution import sys # result_number 기본값을 1로 두고 A,B,C를 입력받아 누적곱을 해준다. result_number = 1 for _ in range(3): result_number *= int(sys.stdin.readline().strip()) # 누적곱한 값에 0~9까지 숫자를..
썸네일 [PYTHON] 2576 홀수 https://www.acmicpc.net/problem/2576 문제풀이 입력값을 테스트케이스만큼 입력 받아 홀수이면 리스트에 담는다. 2로 나눈 나머지가 1이면 홀수이다. 홀수 리스트의 길이가 0이면 -1를 출력하고 아니면 홀수 리스트를 다 더한 값과 최소값을 출력한다. soltuion import sys numbers = [] for _ in range(7): number = int(sys.stdin.readline().strip()) # 받은 입력값이 홀수이면 list에 추가한다. if number% 2: numbers.append(number) # 홀수 리스트에 길이가 있으면 합과 최소값을 출력하고 아니면 -1를 출력한다. if len(numbers) : print(sum(numbers)) pr..
썸네일 [PYTHON] 7785 회사에 있는 사람 - 딕셔너리 value값으로 key 추출 https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 문제풀이 name를 key로 출입여부를 value로 딕셔너리를 만든다. 같은 key이면 후자로 추가된 value로 update되기 때문에 value가 leave가 남겨져 있는 key는 퇴근을 한 것이니 회사에 있지 않다. enter라는 value를 가지고 있는 key값을 리스트에 담고 사전 역순으로 출력한다. import sys T = int(sys.stdi..
썸네일 [PYTHON] 10886 0 = not cute / 1 = cute https://www.acmicpc.net/problem/10886 10886번: 0 = not cute / 1 = cute 준희는 자기가 팀에서 귀여움을 담당하고 있다고 생각한다. 하지만 연수가 볼 때 그 의견은 뭔가 좀 잘못된 것 같았다. 그렇기에 설문조사를 하여 준희가 귀여운지 아닌지 알아보기로 했다. www.acmicpc.net 문제 풀이 모든 학생들의 투표 결과를 for문을 통해 list에 담는다. count를 사용해 0과 1의 개수를 세주고 비교하여 출력한다. solution import sys t = int(sys.stdin.readline().strip()) vote_list = [] for _ in range(t): vote_list.append(int(sys.stdin.readline(..