반응형

코테 64

[파이썬, Python] 백준 21610: 마법사 상어와 비바라기

문제https://www.acmicpc.net/problem/21610 코드import sysinput = sys.stdin.readlinen, m = map(int, input().split())buckets = [list(map(int, input().split())) for _ in range(n)]cloud = [[n - 1, 0], [n - 1, 1], [n - 2, 0], [n - 2, 1]]def move_cloud(): move_cloud = [] order = [(0, 0), (0, -1), (-1, -1), (-1, 0), (-1, 1), (0, 1), (1, 1), (1, 0), (1, -1)] d, s = map(int, input().split()) dir =..

[파이썬, Python] 백준 9375: 패션왕 신해빈

문제 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat), (turban), (sunglasses), (hat,sunglasses), (turban,sunglasses)로 총 5가지 이다. www.acmicpc.net 코드 import sys input = sys.stdin.readline t = int(input()) for i in range(t): ans = 1 clothes = dict() n = int(input()) for i in range(n): _, a = input().split() if a no..

[파이썬, Python] 백준 1748: 수 이어 쓰기 1

문제 https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 코드 n = int(input()) len_n = len(str(n)) cnt = 0 for i in range(len_n - 1): cnt += 9 * 10 ** i * (i+1) print(cnt + (n - 10 ** (len_n - 1) + 1) * len_n) 설명 단순하게 수를 구해서 푸는 문제라기엔 주어진 범위가 넓어서 규칙성을 찾아야 했다. 혼자서는 찾지 못해서 검색을 통해 해결했다. n의 규칙은 이렇다. 자릿수 1개의 경우: 숫자는 1~9까지 존재, 모두 더하면 자리수가 9개 자릿수 2개의 경우:..

[파이썬, Python] 백준 18258: 큐2

문제 https://www.acmicpc.net/problem/18258 18258번: 큐 2 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 2,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 코드 from collections import deque import sys input = sys.stdin.readline n = int(input()) q = deque([]) for _ in range(n): order = input().split() if order[0] == 'push': q.append(order[1]) elif order[0] == 'p..

[파이썬, Python] 백준 2003: 수들의 합 2

문제 https://www.acmicpc.net/problem/2003 2003번: 수들의 합 2 첫째 줄에 N(1 ≤ N ≤ 10,000), M(1 ≤ M ≤ 300,000,000)이 주어진다. 다음 줄에는 A[1], A[2], …, A[N]이 공백으로 분리되어 주어진다. 각각의 A[x]는 30,000을 넘지 않는 자연수이다. www.acmicpc.net 코드 import sys input = sys.stdin.readline n, m = map(int, input().split()) num = list(map(int, input().split())) cnt = 0 inter_sum = 0 end = 0 for start in range(n): while inter_sum < m and end < n:..

[파이썬, Python] 백준 7576: 토마토

문제 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 코드 from collections import deque import sys input = sys.stdin.readline m, n = map(int, input().split()) tomato = [list(map(int, input().split())) for _ in range(n)] queue = deque([]) dx, dy = [-1, 1, 0, 0], [0, ..

[파이썬, Python] 백준 11656: 접미사 배열

문제 https://www.acmicpc.net/problem/11656 11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 코드 s = input() word = list() for i in range(len(s)): word.append(s[i:]) for i in sorted(word): print(i) 설명 우선 단어를 입력받고, 접미사를 넣을 리스트를 만든다. 그리고 입력받은 단어의 부분 단어(접미사)를 word에 추가해 준다. 사전순으로 정렬하여 출력형식에 맞게 출력해 준다.

[파이썬, Python] 백준 1912: 연속합

문제 https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 n = int(input()) num = list(map(int,input().split())) dp = [-1001] * (n+1) for i in range(n): dp[i+1] = max(num[i], num[i] + dp[i]) print(max(dp)) 설명 우선 입력을 각각 받아준다. 그리고 dp를 -1001의 n+1개로 초기화 해준다. 수의 범위가 -1000

[파이썬, Python] 백준 1475: 방 번호

문제 https://www.acmicpc.net/problem/1475 1475번: 방 번호 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 코드 n = input() idx = list(0 for i in range(9)) for i in range(len(n)): if n[i] != '9': idx[int(n[i])] += 1 else: idx[6] += 1 idx[6] = (idx[6] + 1) // 2 print(max(idx)) 설명 우선 방 번호를 입력받는다. 이후 0부터 8까지의 리스트를 하나 생성해 준다.(9는 6으로 취급) 입력받은 숫자의 수가 9가 아니라면 각 수의 인덱스에 맞는 숫자를 1개 올려주고, 9라면 ..

반응형