[Coding Test]/[백준]
[백준] 1302 파이썬(python) : 베스트셀러
1302번: 베스트셀러 import sysn = int(sys.stdin.readline())book = { }for _ in range(n): book_name = sys.stdin.readline().rstrip() if book_name not in book: book[book_name] = 1 else: book[book_name] += 1ans = []num = max(book.values()) #1for i in book: if num == book[i]: ans.append(i)ans.sort() #2print(ans[0]) #1 : 해시에서 값만 따로 추출해서 최고값 넣는법#2 : 사전 순 정렬 후 2개 이상 있을까봐 ans[0..
[백준] 10988 파이썬(python) : 팰린드롬인지 확인하기
https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net import sys string = sys.stdin.readline().rstrip() if string == string[::-1]: print(1) else: print(0) 문자열 슬라이싱을 사용하면 쉽게 풀 수 있는 문제였다.
[백준] 1032 파이썬(python) : 명령 프롬프트
https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net import sys n = int(sys.stdin.readline()) string = [] for _ in range(n): string.append(list(sys.stdin.readline().rstrip())) #1 length = len(string[0]) answer = string[0] #2 for char in string: for i in range(length): if a..
[백준] 11656 파이썬(python) : 접미사 배열 - 문자열 슬라이싱
https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net import sys string = sys.stdin.readline().rstrip() #1 ans = [] length = len(string) for i in range(length): ans.append(string[i:]) #2 ans.sort() for i in ans: print(i) #1 : 문자열로 입력받는다 #2 : 문자열을 슬라이싱해서 접미사를 모두 자른다 슬라이싱은 문자열, 리스트, 튜플등 연속적인 객체는 모두 가능하며 일부분을 복사해서 새로운 객체를 반..
[백준] 11655 파이썬(python) : ROT13 - 기초지식
https://www.acmicpc.net/problem/11655 11655번: ROT13 첫째 줄에 알파벳 대문자, 소문자, 공백, 숫자로만 이루어진 문자열 S가 주어진다. S의 길이는 100을 넘지 않는다. www.acmicpc.net import sys string = list(sys.stdin.readline().rstrip()) # list로 묶지 않으면 string[i] 접근 불가 for i in range(len(string)): if string[i].isupper(): #1 if ord(string[i])+13
[백준] 10610 파이썬(python) : 30
10610번: 30 10610번: 30어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한www.acmicpc.net import sysn = list(sys.stdin.readline().rstrip())n.sort(reverse=True)sum = 0for i in n: sum += int(i)if sum % 3 != 0 or '0' not in n: print(-1)else: print(''.join(n)) 일의 자리수가 반드시 0이어야 하고 각 자리의 수를 모두 더했을때 3으로 나눠떨어져야 한다.(예제 2에서 102의 각 자리수를 모두 더하..