[프로그래머스/카카오 17687] n진수 게임 (Python)

문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/17687 문제 해설 Idea Math 0부터 시작해 t*m의 길이를 만족하는 N진법 배열을 생성 매 순서마다 p 위치에 해당하는 값을 추출해 문자열로 반환 Data Size n: 2 <= int <= 16 t: 0 < int <= 1,000 m: 2 <= int <= 100 p: 1 <= int <= m 해설 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 alpha = {10:'A',11:'B',12:'C',13:'D',14:'E',15:'F'} def n_base(num, base): result = str() while num > 0: num, mod = divmod(num, base) result += str(mod) if mod < 10 else alpha[mod] return result[::-1] def solution(n, t, m, p): arr = '01' total = t*m p = p%m i = 2 while len(arr) < total: arr += n_base(i, n) i += 1 answer = [t for i,t in enumerate(arr[:total]) if (i+1)%m==p] return ''....

August 16, 2022 · 1 min · 141 words · minyeamer

[백준 1676] 팩토리얼 0의 개수 (Python)

문제 링크 https://www.acmicpc.net/problem/1676 문제 해설 Idea Math 팩토리얼 수를 구하고 문자열로 변환해 연속되는 0의 개수를 출력 Data Size N: 0 <= int <= 500 해설 코드 1 2 3 4 5 6 7 8 9 from math import factorial import re N = int(input()) zeros = re.findall('0+', str(factorial(N))) if zeros: print(len(zeros[-1])) else: print(0)

August 16, 2022 · 1 min · 53 words · minyeamer

[백준 1541] 잃어버린 괄호 (Python)

문제 링크 https://www.acmicpc.net/problem/1541 문제 해설 Idea Greedy 최솟값을 만들기 위해서는 ‘-‘를 기준으로 괄호를 치는 것이 최선 ‘-‘를 기준으로 식을 나누고 구분된 식을 계산하여 결과를 출력 Data Size arr: str(50) 해설 코드 1 2 3 4 5 arr = input().split('-') answer = sum(map(int,arr[0].split('+'))) for i in arr[1:]: answer -= sum(map(int,i.split('+'))) print(answer)

August 16, 2022 · 1 min · 50 words · minyeamer

[백준 1389] 케빈 베이컨의 6단계 법칙 (Python)

문제 링크 https://www.acmicpc.net/problem/1389 문제 해설 Idea BFS 1부터 N까지의 번호에 대해 매번 BFS를 수행하면서 다른 모든 노드와의 거리를 파악 가장 작은 거리의 합을 가진 노드의 인덱스 번호를 출력 Time Complexity O(N^2+NM) = 510,000 Data Size N: 2 <= int <= 100 M: 1 <= int <= 5,000 해설 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 from collections import deque import sys input = sys....

August 16, 2022 · 1 min · 167 words · minyeamer

[백준 5430] AC (Python)

문제 링크 https://www.acmicpc.net/problem/5430 문제 해설 Idea Implementation, Deque 문제에서 주어진대로 매번 배열을 뒤집으면 O(N^2)의 시간 복잡도로 시간 초과가 발생 배열에 영향을 주지 않으면서 R 함수를 처리하기 위해 상태 변수를 정의하고, D 함수가 호출될 경우 배열의 상태에 따라 첫 번째 수를 버릴지 마지막 수를 버릴지 결정 마지막에 배열의 상태를 업데이트하고 정해진 형태로 결과를 출력 Time Complexity O(N) = 100,000 Data Size T: 1 <= int <= 100 p: 1 <= int <= 100,000 n: 1 <= int <= 100,000 arr: int(100) * n (like [x_1,…,x_n]) 해설 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 from collections import deque for _ in range(int(input())): p = input() n = int(input()) arr = deque(eval(input())) forward = True try: for cmd in p: if cmd == 'R': forward = not forward elif cmd == 'D': if forward: arr....

August 15, 2022 · 1 min · 160 words · minyeamer