[Python] 알고리즘/Silver
-
[1138] 한 줄로 서기 (Python)[Python] 알고리즘/Silver 2022. 3. 18. 22:02
[문제] https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 알고리즘 분류는 구현 입니다. 자신보다 큰 사람을 기억하고 있으므로, 만약 2명이라 기억한다면 자신의 왼쪽에는 2명의 큰 사람이 있었을 것입니다. 아래 영상은 알고리즘 이해를 돕기 위한 영상으로, 답을 알 수 있는 힌트가 들어있으니 나중에 보시는 것을 추천합니다. 알고리즘 이해를 돕기 위한 영상 [코드] import sys N = int(sys.stdin.readline()) he..
-
[1411] 비슷한 단어 (Python)[Python] 알고리즘/Silver 2022. 3. 1. 19:48
[문제] https://www.acmicpc.net/problem/1411 1411번: 비슷한 단어 첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 모든 단어의 길이는 같고, 중복 www.acmicpc.net 알고리즘 분류는 구현, 문자열, 브루트포스 알고리즘 입니다. 처음 나오는 문자를 1, 그 다음 나오는 문자를 2, ... 로 바꾸어서 풀었습니다. [코드] import sys N = int(sys.stdin.readline()) li = list() for i in range(N): word = sys.stdin.readline().rstrip() k = 1 s = "" dt =..
-
[1972] 놀라운 문자열 (Python)[Python] 알고리즘/Silver 2021. 12. 23. 16:05
[문제] https://www.acmicpc.net/problem/1972 1972번: 놀라운 문자열 대문자 알파벳으로만 이루어져 있는 문자열이 있다. 이 문자열에 대해서 ‘D-쌍’이라는 것을 정의할 수 있는데, 이 문자열에 포함되어 있는, 거리가 D인 두 문자를 순서대로 나열한 것을 이 문 www.acmicpc.net 알고리즘 분류는 구현, 자료 구조, 문자열, 해시를 사용한 집합과 맵 입니다. D-쌍들이 서로 다른 것을 판단할 때, dictionary를 사용하였습니다. [코드] import sys while True: st = sys.stdin.readline().rstrip() if st == "*": break res = 0 for i in range(len(st) - 1): dt = dict()..
-
[1544] 사이클 단어 (Python)[Python] 알고리즘/Silver 2021. 12. 22. 11:39
[문제] https://www.acmicpc.net/problem/1544 1544번: 사이클 단어 사이클 단어는 어떤 단어를 원형 모양으로 차례대로 쓴 것이다. 따라서, 어떤 단어를 이렇게 쓴 후에 임의의 단어를 고른다. 그 후에 시계방향으로 차례대로 읽으면 그 것이 단어가 된다. 만약에 www.acmicpc.net 알고리즘 분류는 구현, 자료 구조, 문자열, 브루트포스 알고리즘, 해시를 이용한 집합과 맵 입니다. deque를 사용하여 한 문자를 뒤로 보내며 검사하였습니다. [코드] import sys from collections import deque N = int(sys.stdin.readline()) w_li = list() for i in range(N): w_li.append(sys.stdi..
-
[1021] 회전하는 큐 (Python)[Python] 알고리즘/Silver 2021. 12. 21. 16:22
[문제] https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 알고리즘 분류는 자료 구조, 덱 입니다. deque의 위치를 이용하여 왼쪽으로 이동시킬지, 오른쪽으로 이동시킬지 정할 수 있습니다. [코드] import sys from collections import deque N, M = map(int, sys.stdin.readline().split()) dq = deque(_ for _ in range(1, N + 1)) pop_li = li..
-
[1543] 문서 검색 (Python)[Python] 알고리즘/Silver 2021. 12. 2. 17:55
[문제] https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net 알고리즘 분류는 문자열, 그리디 알고리즘, 브루트포스 알고리즘 입니다. 특정 문자를 찾기 위해 find()를 사용하였습니다. [코드] import sys text = sys.stdin.readline().rstrip() word = sys.stdin.readline().rstrip() cnt = 0 while text.find(word) != -1: # 찾을 수 없으면 -1이 나옴 n = te..
-
[4900] 7 더하기 (Python)[Python] 알고리즘/Silver 2021. 12. 1. 22:10
[문제] https://www.acmicpc.net/problem/4900 4900번: 7 더하기 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 A+B=꼴이며, A와 B는 두 수 a와 b를 7 세그먼트 디스플레이 상에서의 코드로 표현한 값이다. (0 < a,b < a+b < 1,000,000,000) 마지막 www.acmicpc.net 알고리즘 분류는 구현, 문자열 입니다. 아래의 힌트를 참고하여 코드를 구하고, 3자리씩 끊어서 숫자를 알아내면 되는 문제입니다. [코드] import sys code = { "063": 0, "010": 1, "093": 2, "079": 3, "106": 4, "103": 5, "119": 6, "011": 7, "127": 8, "107": 9,..
-
[21919] 소수 최소 공배수 (Python)[Python] 알고리즘/Silver 2021. 11. 30. 17:14
[문제] https://www.acmicpc.net/problem/21919 21919번: 소수 최소 공배수 수열 중에 소수는 2, 3, 5가 있다. www.acmicpc.net 알고리즘 분류는 수학, 정수론, 소수 판정, 에라토스테네스의 체 입니다. 중복된 소수가 나올 수 있습니다. (이 경우를 고려하지 않으면 출력 초과 오류가 뜹니다.) [코드] import sys def prime(): n = 1000000 p = [True] * n m = int(n ** 0.5) for i in range(2, m + 1): if p[i] == True: for j in range(i + i, n, i): p[j] = False return p N = int(sys.stdin.readline()) A = map(..