목록python (158)
컴공생의 다이어리
백준 2346번 : 풍선 터뜨리기 (문제 바로가기) 내 코드 import sys from collections import deque n = int(sys.stdin.readline()) deq = deque(enumerate(map(int, sys.stdin.readline().split()), start=1)) for i in range(n): p = deq.popleft() print(p[0], end=' ') if p[1] > 0: deq.rotate(-(p[1] - 1)) else: deq.rotate(-p[1]) 아래는 나와 같은 방식으로 문제를 푼 사람의 게시글이다. 잘 정리되어 있어 이해가 가지 않는다면 보는 것을 추천한다. [Python] 백준 2346 풍선 터뜨리기 (Deque) 터진 ..
백준 10799번 : 쇠막대기 (문제 바로가기) 내 코드 import sys text = list(sys.stdin.readline().strip().replace("()", "*")) stack = [] result = 0 for i in range(len(text)): if text[i] == "(": stack.append(0) elif text[i] == ")": stack.pop() result += 1 else: # 레이저 일때 result += len(stack) print(result)
Python 약수 구하기 파이썬으로 약수를 구하는 함수를 다양하게 정리해보았다. 기본적인 방법 1부터 입력한 수(n)까지 다 나눠지는지 확인하면서 약수를 구하는 방법이다. def get_divisor(n): data = [] for i in range(1, n + 1): if n % i == 0: data.append(i) return data print(get_divisor(8)) 범위를 축소한 버전 1 1부터 입력한 수(n)를 2로 나눈 값까지 다 나눠지는 수인지 확인하면서 약수를 구하는 방법이다. def get_divisor(n): data = [] for i in range(1, n // 2 + 1): if n % i == 0: data.append(i) data.append(n) return d..
백준 1015번 : 수열 정렬 (문제 바로가기) 내 코드 import sys n = int(sys.stdin.readline()) nums = list(map(int, sys.stdin.readline().split())) index = [-1] * n for i in range(n): idx = nums.index(min(nums)) index[idx] = i nums[idx] = 1001 print(' '.join(map(str, index)))
백준 1543번 : 문서 검색 (문제 바로가기) 내 코드 import sys document = sys.stdin.readline().strip() find_txt = sys.stdin.readline().strip() len_find_txt = len(find_txt) index, count = 0, 0 while True: index = document.find(find_txt, index) if index == -1: break count += 1 index += len_find_txt print(count)
백준 1966번 : 프린터 큐 (문제 바로가기) 내 코드 T = int(input()) for _ in range(T): N, M = map(int, input().split()) queue = list(map(int, input().strip().split())) queue = [(v, idx) for idx, v in enumerate(queue)] count = 0 while True: if max(queue)[0] == queue[0][0]: count += 1 if queue[0][1] == M: print(count) break else: queue.pop(0) else: queue.append(queue.pop(0))
백준 1874번 : 스택 수열 (문제 바로가기) 내 코드 n = int(input()) count = 1 stack = [] result = [] for _ in range(n): data = int(input()) while count
백준 3460번 : 이진수 (문제 바로가기) 내 코드 import sys T = int(input()) result = [] for _ in range(T): test_case = int(sys.stdin.readline().strip()) result.append([idx for idx, n in enumerate(format(test_case, 'b')[::-1]) if n == '1']) for r in result: print(" ".join(map(str, r)))
백준 2501번 : 약수 구하기 (문제 바로가기) 내 코드 N, K = map(int, input().split()) result = 0 for i in range(1, N + 1): if N % i == 0: K -= 1 if K == 0: result = i break print(result)
[프로그래머스] 소수 찾기 - 파이썬(Python) import itertools def is_prime(num):# 소수 판별 if num < 2: return False for n in range(2, num): if num % n == 0: return False return True def solution(numbers): prime_num_candidate = [] for i in range(len(numbers)): prime_num_candidate.extend(map("".join, itertools.permutations(numbers, i + 1))) prime_num_candidate = set(map(int, prime_num_candidate)) answer = 0 for num ..