문제 www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 풀이 일반 반복문으로 풀게되면 시간초과가 뜬다. 이분법을 사용하여 풀어야한다. A = [ 4, 1, 5, 2, 3 ] B = [ 1, 3, 7, 9, 5 ] 주어졌을 때, A를 오름차순으로 정렬시킨다. A = [ 1, 2, 3, 4, 5 ] B = [ 1, 3, 7, 9, 5 ] A의 첫번째 인덱스를 start에 넣고, 마지막 인덱스를 end 에 넣은 후 시..
www.acmicpc.net/problem/1260 소스코드 def dfs(x): print(x, end = " ") visit[x] = 1 for i in range(1, n+1): if s[i][x] == 1 and visit[i] == 0: dfs(i) def bfs(v): que = [] que.append(v) while que: x = que.pop(0) visit[v] = 0 print(x, end = ' ') for i in range(1, n+1): if s[x][i] == 1 and visit[i] == 1: que.append(i) visit[i] = 0 n, m, v = map(int, input().split()) s = [[0]*(n+1) for i in range(n+1)] f..
www.acmicpc.net/problem/15922 풀이 먼저 첫번째 [x, y] 값을 x, y 변수에 각각 담아준다. 그리고 n-1번 반복되는 for문 안에서 새로운 정수쌍에 대해 xx, yy로 입력받는다. 전에 입력받은 x, y 와 비교하여 선분의 길이를 구하면 된다. 1. x == xx 일 때 y의 값만 yy로 바꿔준다. 2. y>=xx and yy>y 일 때 y의 값만 yy로 바꿔준다. 3. y=xx and yy>y: y = yy elif y

www.acmicpc.net/problem/11497 11497번: 통나무 건너뛰기 남규는 통나무를 세워 놓고 건너뛰기를 좋아한다. 그래서 N개의 통나무를 원형으로 세워 놓고 뛰어놀려고 한다. 남규는 원형으로 인접한 옆 통나무로 건너뛰는데, 이때 각 인접한 통나무의 높이 www.acmicpc.net 풀이 입력된 리스트를 오름차순으로 정렬한 뒤, 인덱스 값 차이가 2인 값으로 뛰게된다면 난이도를 최소로 만들 수 있다. 소스코드 n = int(input()) for i in range(n): arr = [] m = int(input()) arr = list(map(int, input().split())) arr.sort() max = 0 for j in range(len(arr)-2): if (arr[j+2..
www.acmicpc.net/problem/1461 1461번: 도서관 첫째 줄에 책의 개수 N과, 세준이가 한 번에 들 수 있는 책의 개수 M이 주어진다. 둘째 줄에는 책의 위치가 주어진다. N은 10,000보다 작거나 같은 자연수이고, M은 10,000보다 작거나 같다. 책의 위치 www.acmicpc.net 풀이 예제 입력으로 보자. 7 2 -37 2 -6 -39 -29 11 -28 먼저, 음수부분과 양수부분을 나눠준다. 음수부분 -> minus 리스트에 abs() 절대값을 씌워준 후, 내림차순 정렬 [39, 37, 29, 28, 6] 양수부분 -> plus 리스트에 내림차순 정렬 [11, 2] 직접 계산을 해보면 쉽게 알겠지만, 책 두 개를 가지고 11들렸다가 2들렸다가 제자리로 돌아가는 걸음의 ..
www.acmicpc.net/problem/16953 16953번: A → B 첫째 줄에 A, B (1 ≤ A < B ≤ 109)가 주어진다. www.acmicpc.net 풀이 두 가지 방법으로 풀 수 있다. que에 넣어 dfs로 2를 곱하거나 1을 추가한 값이 B보다 작거나 같다면 que에 추가하여 반복해주는 것 B를 2로 나눠지면 2로 나누고, 끝자리가 1이면 1을 제거해준다. 만약 A보다 작아지거나 2로 나눌 수 없고 끝자리가 1이 아니라면 만들 수 없기 때문에 -1 출력해준다. 소스코드 첫번째 방법(272ms) a, b = map(int, input().split()) que = [(a, 1)] result = -1 while que: x, cnt = que.pop(0) if x == b: re..
www.acmicpc.net/problem/2503 2503번: 숫자 야구 첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트 www.acmicpc.net 풀이 1. num 리스트에 순열(permutations)을 사용하여 가능한 숫자 조합을 담는다. permutations 예시 ('A', 'B')와 ('B', 'A')는 다른 것이다. import itertools arr = ['A', 'B', 'C'] nPr = itertools.permutations(arr, 2) print(list(nPr)) 결과 : [('A', 'B'), ('A', 'C'), ('B', ..
- Total
- Today
- Yesterday
- 프로그래머스 파이썬
- 1240 자바
- 백준파이썬
- swea 1240 자바
- 더 맵게
- 우분투
- 타일링 자바
- swea 타일링
- 백준 dp 문제
- 백준 17144
- swea 1240
- 백준
- union-find
- 3996 자바
- SWEA
- 프로그래머스
- ubuntu
- poker swea
- 메뉴리뉴얼 풀이
- 1699 자바
- yoloV3
- swea 타일링 자바
- 파이썬
- swea 4070 타일링
- 백준 풀이
- 프로그래머스 자바
- 파이썬 풀이
- 삼성청년SW아카데미
- SSAFY
- 프로그래머스 더 맵게
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |