목록CodingTest/Python (74)
기록방
👉 문제링크 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 이름들을 n개 입력받고, 다시 m번 입력받아 겹치는 이름들을 체크한다. 해시를 활용하는 문제이다. 🔸 코드 🔸 import sys n, m = map(int, sys.stdin.readline().split()) name = set() answer = list() for i in range(n): name.add(sys.stdin.readline().rstrip()) for i in range(m): isin = sys.stdin..
👉 문제링크 1620번: 나는야 포켓몬 마스터 이다솜 첫째 줄에는 도감에 수록되어 있는 포켓몬의 개수 N이랑 내가 맞춰야 하는 문제의 개수 M이 주어져. N과 M은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수인데, 자연수가 뭔지는 알지? 모르면 www.acmicpc.net 🔸 문제 분석 🔸 포켓몬 이름을 입력받고, 번호 혹은 포켓몬 이름으로 검색, 출력한다. 🔸 코드 🔸 import sys n, m = map(int, sys.stdin.readline().split()) book = {} number = 1 for i in range(n): poket = sys.stdin.readline().rstrip() if poket not in book: book[poket] = number num..
👉 문제링크 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 set를 구현하는 문제이다. 🔸 코드 🔸 import sys m = int(sys.stdin.readline()) s = set() for i in range(m): order = sys.stdin.readline() if order[:3] == "add": s.add(int(order[4:])) elif order[:6] == "remove": x = int(order[7:]) if x in s: s.remove(x) elif order[:5] == "check": ..
👉 문제링크 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 🔸 문제 분석 🔸 입력받은 문자열을 확인하면서 변경된 크로아티아 알파벳인지 확인해 추가하고 아니면 그냥 한 글자를 추가한다. 🔸 코드 🔸 alphabet = input() croatia = ("c=","c-","d-","lj","nj","s=","z=") answer = 0 i = 0 while i < len(alphabet): if alphabet[i:i+2] in croatia: answer += 1 i +=..
👉 문제링크 1308번: D-Day 첫째 줄에 오늘의 날짜가 주어지고, 두 번째 줄에 D-Day인 날의 날짜가 주어진다. 날짜는 연도, 월, 일순으로 주어지며, 공백으로 구분한다. 입력 범위는 1년 1월 1일부터 9999년 12월 31일 까지 이다. www.acmicpc.net 🔸 문제 분석 🔸 d-day까지 날짜 수를 구하는 문제이다. 윤년 계산에 주의해야한다. 🔸 코드 🔸 from datetime import datetime today = list(map(int, input().split())) dday = list(map(int, input().split())) today_date = datetime(year=today[0], month=today[1], day=today[2]) dday_date ..