N = int(input()) # 파일개수 dic = {} # 확장자를 담아줄 딕셔너리 for i in range(N): _, extend = input().split('.') # .기준으로 문자열 분리 if extend in dic: # 딕셔너리에 확장자가 있다면 개수를 추가 dic[extend] += 1 else: # 없다면 새로 등록 dic[extend] = 1 for key in sorted(dic.keys()): # 딕셔너리의 key를 오름차순 정렬 print(key, dic[key]) https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 ..
# 통과코드 import sys n = int(sys.stdin.readline()) name_list = {} # 이름을 담아줄 딕셔너리 result = '' # 결과를 한번에 출력해주기 위해 문자열 변수 선언 for i in range(n): name, state = sys.stdin.readline().split() if state == 'enter': # 출근했다면 딕셔너리에 추가 name_list[name] = state else: # 퇴근했다면 딕셔너리에서 삭제 del name_list[name] for i in sorted(name_list.keys(), reverse=True): # 딕셔너리에서 key만 추출, 역순으로 정렬 result += i + '\n' print(result) htt..
N = int(input()) # 과목 개수 score = list(map(int, input().split())) M = max(score) # 최고점 찾기 for i in range(len(score)): score[i] = score[i] / M * 100 # 각 점수별로 다시 계산 print(sum(score) / N) # 평균 계산 https://www.acmicpc.net/problem/1546 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net
# 가장 많이 사용된 알파벳이 무엇인지 알아내기 word = input().upper() # 출력해야할 값이 대문자이므로 대문자로 변경 newSet = list(set(word)) # word에 존재하는 문자들의 중복 제거 word_count = [] # 각 글자의 개수를 담아줄 리스트 for i in newSet: word_count.append(word.count(i)) # word에서 각 문자의 개수를 word_count에 추가 if word_count.count(max(word_count)) >= 2: # 만약 최대값의 개수가 2개 이상이라면 = 최대값 여러개 print('?') else: print(newSet[word_count.index(max(word_count))]) # 최대값이 하나인 ..
A, B = map(lambda n: int(n[::-1]),input().split()) print(A if A > B else B) # n[::-1] : 문자열 역순 정렬 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net
문제 **《할리갈리》**는 단추가 달린 종 하나와 과일이 그려진 카드들로 구성된 보드게임입니다. 카드에는 총 4$4$종류의 과일이 최대 5$5$개까지 그려져 있습니다. 그려진 과일의 종류는 딸기, 바나나, 라임, 그리고 자두입니다. 게임을 시작할 때 플레이어들은 카드 뭉치를 공평하게 나눠가지며 자신이 가진 카드를 전부 소모하면 패배합니다. 게임은 시작 플레이어가 본인의 카드 뭉치에서 카드 한 장을 공개하는 것으로 시작합니다. 이후 반시계 방향으로 돌아가며 본인의 카드를 한 장씩 공개합니다. 펼쳐진 카드들 중 한 종류 이상의 과일이 정확히 5$5$개 있는 경우 종을 눌러야 하며 가장 먼저 종을 누른 플레이어가 모든 카드를 모아 자신의 카드 뭉치 아래에 놓습니다. 종을 잘못 누른 경우 다른 모든 플레이어에게..
문제 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열에는 몇 개의 단어가 있을까? 이를 구하는 프로그램을 작성하시오. 단, 한 단어가 여러 번 등장하면 등장한 횟수만큼 모두 세어야 한다. 입력 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열은 공백으로 시작하거나 끝날 수 있다. 출력 첫째 줄에 단어의 개수를 출력한다. 예제 입력 1 The Curious Case of Benjamin Button 예제 출력 1 6 예제 입력 2 The first character is a blank 예제 출력 2 6 예제 입력 3 The last charac..
set()을 사용하기 ls = [1, 2, 3] newSet = set(ls) print(newSet) # 출력 # {1, 2, 3} Set Comprehension 사용하기 ls = [1, 2, 3] newSet = {x for x in my_list} print(newSet) # 출력 # {1, 2, 3} unpacking 연산자 사용하기 ls = [1, 2, 3] newSet = {*ls} print(newSet) # 출력 # {1, 2, 3}
break 반복문을 중단하고 싶을때 사용함. 모든 반복문을 중단하는것이 아닌 가장 가까운 반복문에서만 나온다. for i in range(1, 10): if i == 5: break print(i) # 출력 # 1 # 2 # 3 # 4 coutinue 해당 루프만 즉시 종료하고 다음 루프를 실행시키고 싶을때 사용한다. (=건너뛰기) for i in range(1, 10): if i % 2 == 0: # 짝수이면 건너뛰기 continue print(i) # 출력 # 1 # 3 # 5 # 7 # 9 pass 어떠한 명령문도 수행하지 않고 그냥 넘어가고 싶을때 사용하는 키워드. 파이썬에서는 조건문 내부에 명령문이 하나라도 존재하지 않으면 에러가 발생한다. 나중에 코드를 추가할 계획이거나 예외가 발생했을때 처리..
문제 시골에 있는 태양이의 삼촌 댁에는 커다란 참외밭이 있다. 문득 태양이는 이 밭에서 자라는 참외가 도대체 몇 개나 되는지 궁금해졌다. 어떻게 알아낼 수 있는지 골똘히 생각하다가 드디어 좋은 아이디어가 떠올랐다. 유레카! 1m2의 넓이에 자라는 참외 개수를 헤아린 다음, 참외밭의 넓이를 구하면 비례식을 이용하여 참외의 총개수를 구할 수 있다. 1m2의 넓이에 자라는 참외의 개수는 헤아렸고, 이제 참외밭의 넓이만 구하면 된다. 참외밭은 ㄱ-자 모양이거나 ㄱ-자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형이다. 다행히도 밭의 경계(육각형의 변)는 모두 동서 방향이거나 남북 방향이었다. 밭의 한 모퉁이에서 출발하여 밭의 둘레를 돌면서 밭경계 길이를 모두 측정하였다. !https:..