[python] 백준 1543 : 문서 검색 1543번: 문서 검색 (acmicpc.net) 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 실버 4 브루트포스, 그리디, 문자열 접근 예제 입력1을 예시로 접근해보자. ababababa aba 첫줄에 입력한 글자를 인덱스 0부터 끝까지 탐색할 필요가 없다. aba라는 3글자가 첫줄에 입력한 문자열에 존재하는지 확인하는 것이기 때문에 맨 처음 인덱스부터 맨 끝에서 세번째 인덱스까지 탐색하면 된다. 따라서 for i in range(len(문자열변수) - len(찾을 ..
[파이썬] 백준 5525 : IOIOI 5525번: IOIOI (acmicpc.net) 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 실버 2 문자열 접근 n이 1 : IOI n이 2 : IOIOI n이 3 : IOIOIOI 먼저 반복문을 돌리면서 I가 위치한 인덱스 값을 새로운 리스트에 append한다. 리스트의 i번째 값과 i-1번째 값의 차가 2라면 IOI와 같은 경우이므로 카운터 변수를 하나 증가시키는 방법으로 IOI를 탐색할 수 있..
[파이썬] 백준 15312 : 이름 궁합 https://www.acmicpc.net/problem/15312 15312번: 이름 궁합 영어 대문자 알파벳 26개의 획수는 순서대로 3, 2, 1, 2, 3, 3, 2, 3, 3, 2, 2, 1, 2, 2, 1, 2, 2, 2, 1, 2, 1, 1, 1, 2, 2, 1 로 정한다. (출제자가 알파벳 대문자를 쓰는 방법이 기준이다) www.acmicpc.net 브론즈 1 DP, 구현, 문자열 획수에 대한 기준은 문제의 힌트에 명시되어 있다. 그냥 문제에서 요구하는 조건 그대로 구현하면 쉽게 풀린다. 인접한 두 수의 합을 10으로 나눈 나머지를 리스트에 재할당하되, pop으로 마지막 원소를 제거하는 식으로 숫자를 줄여나갔다. 특히, 리스트의 원소가 int일 경우..
[파이썬] 백준 1764 : 듣보잡 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 실버 4 문자열, 정렬, 해시 의외로 시간초과가 나지 않는 문제. 중복을 허용하지 않으니까 set을 사용하면 되고, 두 set의 교집합을 정렬해서 출력하면 끝난다. 코드 import sys; input = sys.stdin.readline N, M = map(int, input().split()) d = set(input().rstrip() for _ in r..
https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 난이도 : 실버5 분류 : 구현, 문자열 ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] 입력받은 문자열의 개수를 세어 출력하되, 위의 문자들은 하나로 셈해야 한다. 풀이 1 word = input() cnt = 0 cro = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z='] fo..
https://www.acmicpc.net/problem/1259 1259번: 팰린드롬수 입력은 여러 개의 테스트 케이스로 이루어져 있으며, 각 줄마다 1 이상 99999 이하의 정수가 주어진다. 입력의 마지막 줄에는 0이 주어지며, 이 줄은 문제에 포함되지 않는다. www.acmicpc.net 알고리즘 분류 : 구현, 문자열 1 : reversed()와 join함수를 이용한 풀이 while True: N = input() if N == '0': break if N == ''.join(reversed(N)): print('yes') else: print('no') reversed()함수 문자열을 반대로 돌린값을 반환한다. join함수 '구분자'.join(리스트) 인자로 넘겨주는 리스트의 요소들을 구분자로..