일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 백준
- 키패드 누르기
- 피보나치 수의 확장
- A와 B
- 백준 14499
- 백준1697
- 백준1788
- 백준16234
- 전기 요금
- 인구 이동
- 백준5710
- 단어 수학
- 부스트캠프
- 빙산
- 움직이는 미로 탈출
- 백준16954
- 백준2573
- 백준12904
- 코딩테스트
- 경비원
- 로또의 최고 순위와 최저 순위
- 백준3190
- 소수 만들기
- Smart Commit
- 백준 2564
- 완주하지 못한 선수
- 파이썬
- 백준1339
- 124 나라의 숫자
- 프로그래머스
- Today
- Total
목록알고리즘 (21)
Today.dev
아직 정리중 어렵다 😣😣 참고 https://www.acmicpc.net/blog/view/9 세그먼트 트리 (Segment Tree) 문제 배열 A가 있고, 여기서 다음과 같은 두 연산을 수행해야하는 문제를 생각해봅시다. 구간 l, r (l ≤ r)이 주어졌을 때, A[l] + A[l+1] + ... + A[r-1] + A[r]을 구해서 출력하기 i번째 수를 v로 바꾸기. A[i www.acmicpc.net https://blog.naver.com/ndb796/221282210534 41. 세그먼트 트리(Segment Tree) 이번 시간에 다룰 내용은 여러 개의 데이터가 연속적으로 존재할 때 특정한 범위의 데이터의 합을 구하는 ... blog.naver.com https://milkclouds.git..
문제 16954번: 움직이는 미로 탈출 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net 풀이 import sys from collections import deque input = sys.stdin.readline def bfs(x, y): q = deque() q.append((x, y, 0)) # x, y, 시간 dx = [-1, -1, -1, 0, 0, 0, 1, 1, 1] dy = [-1, 0, 1, -1, 0, 1, -1, 0, 1] while q: x, y, time = q.popleft(..
문제 3190번: 뱀 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 풀이 from collections import deque import sys input = sys.stdin.readline def turn(c): global dir if dir == 'L': dir = 'D' if c == 'L' else 'U' elif dir == 'R': dir = 'U' if c == 'L' else 'D' elif dir == 'U': dir = 'L' if c == 'L' else 'R' elif dir == 'D'..
문제 5710번: 전기 요금 5710번: 전기 요금 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 두 정수 A와 B가 주어진다. (1 ≤ A, B ≤ 109) 항상 정답이 유일한 경우만 주어지며, 입력으로 주어지 www.acmicpc.net 풀이 import sys input = sys.stdin.readline def get_wh_from_bill(bill): arr = [100 * 2, 100 * 2 + 9900 * 3, 100 * 2 + 9900 * 3 + 990000 * 5] if bill
문제 1697번: 숨바꼭질 1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 풀이 from collections import deque def bfs(start): q = deque() q.append((start, 0)) # 시작 점, 초(sec) visited = set() while q: x, sec = q.popleft() operation = [x - 1, x + 1, x * 2] for i in range(3): nx = operation[i] if 0
문제 14499번: 주사위 굴리기 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 풀이 import sys input = sys.stdin.readline def roll_the_dice(m): if m == 1: # 동 return [dice[0], dice[2], dice[3], dice[5], dice[4], dice[1]] if m == 2: # 서 return [dice[0], dice[5], dice[1], dice[2], dice[4..
문제 49189번: 가장 먼 노드 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 맞은 풀이 from collections import deque def bfs(graph, n): q = deque() q.append((1, 0)) # 시작노드, 거리 visited = [-1 for x in range(n + 1)] visited[1] = 0 while q: x, d = q.popleft() for i in graph[x]: if visited[i] == -1: visited[i] = d + 1 q.append((i, d + 1)) max_val = max(visited) ret..
문제 42746번: 가장 큰 수 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 틀린 풀이 def solution(numbers): numbers = list(map(str, numbers)) numbers.sort(key=lambda x: (len(x), -int(x))) #1 return ''.join(numbers) #2 1. 리스트를 자릿수가 짧고 큰 숫자 순서로 정렬(#1)했는데 틀린 정렬 조건이다. 2. 리스트를 단순히 str로 합치는..