본문 바로가기

알고리즘 풀이58

[백준/파이썬] 10866번: 덱 https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 파이썬 deque 라이브러리로 충분히 풀 수 있다. from collections import deque import sys n = int(sys.stdin.readline()) q = deque() for _ in range(n): order = sys.stdin.readline() a = order.split() if a[0] == "push_back": q.append(a[1.. 2023. 1. 9.
[백준/파이썬] 11866번: 요세푸스 문제 0 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net from collections import deque n, k = map(int, input().split()) q = deque() arr = [] for i in range(1, n + 1): q.append(i) # q가 비어있지 않은경우 실행 while q: # k-1 번 만큼 앞에 숫자를 뒤로 보내줌 for _ in range(k - 1): x = q.popleft() q.append(x) arr.append(q.popleft()) # 정답 출력 print("") brea.. 2023. 1. 7.
[백준/파이썬] 2164번: 카드2 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 파이썬 deque 라이브러리를 사용했다. from collections import deque n = int(input()) q = deque() x = 0 # 1~n 까지 숫자 입력 for i in range(1, n + 1): q.append(i) while True: # q가 1이 될 때까지 반복문을 실행하며 마지막 남은 요소를 출력한다. if len(q) == 1: print(q.pople.. 2023. 1. 7.
[백준/파이썬] 1300번 : K번째 수 https://www.acmicpc.net/problem/1300 1300번: K번째 수 세준이는 크기가 N×N인 배열 A를 만들었다. 배열에 들어있는 수 A[i][j] = i×j 이다. 이 수를 일차원 배열 B에 넣으면 B의 크기는 N×N이 된다. B를 오름차순 정렬했을 때, B[k]를 구해보자. 배열 A와 B www.acmicpc.net 배열을 사용하여 풀면 쉬운 문제지면 배열을 사용하면 메모리 초과 오류가 뜬다. 다른 블로그 참조하여 풀이. (너무 어렵다 ...... 생각조차 못함) n = int(input()) # 배열의 크기 k = int(input()) def bianry_search(target, start, end): while start = target: end = mid - 1 else.. 2023. 1. 6.
[백준/파이썬] 10816번: 숫자 카드 2 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 이진 탐색 라이브러리를 활용하여 문제를 풀이하였음. import sys from bisect import bisect_left, bisect_right n = sys.stdin.readline() a = sorted(list(map(int, sys.stdin.readline().split()))) m = sys.stdin.readline() b = list(map.. 2023. 1. 6.
[백준/파이썬] 1978번: 소수 찾기 https://www.acmicpc.net/problem/1978 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 소수는 1과 자기 자신으로만 나누어떨어지는 수. n = int(input()) arr = list(map(int, input().split())) result = 0 for i in arr: cnt = 0 for j in range(1, i + 1): if i % j == 0: cnt += 1 if cnt == 2: result += 1 print(result) 1과 자기자신으로만 나누어 떨어지면 cnt 를 1증가하여 2가 될 경우만 소수로 인정하여 result를 .. 2023. 1. 6.