https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net [풀이] (1) 스타트팀원을 구한다. 스타트팀=> 조합 라이브러리를 이용하여 N//2명의 구성원으로 이루는 경우의수를 구한다. 링크팀=> 전체인원1~N 중 스타트팀에 있는 멤버를 제외한 나머지 번호를 의미한다 (filter을 사용했다) (2) 각 팀의 능력치를 구하여, 두 능력치 차이의 최솟값을 구한다. 과정 (1)에서 구한 스타트팀의 경우의 수를 START에 저장하고 링크팀의 경우의 수를 LINK에 저장했다. STA..
https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미한다. r과 c는 1부터 시작한다. 이 도시에 사는 사람들은 치킨을 매우 좋아한다. 따라서, 사람들은 "치킨 거리"라는 말을 주로 사용한다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리이다. 즉, 치킨 거리는 www.acmicpc.net [풀이] Brute Force를 이용했다. 물론 조합을 DFS로 구현할 수 있다. 해도 무방하다. DFS공부겸 조합을 나타내는 것도 ..
https://www.acmicpc.net/problem/10159 10159번: 저울 첫 줄에는 물건의 개수 N 이 주어지고, 둘째 줄에는 미리 측정된 물건 쌍의 개수 M이 주어진다. 단, 5 ≤ N ≤ 100 이고, 0 ≤ M ≤ 2,000이다. 다음 M개의 줄에 미리 측정된 비교 결과가 한 줄에 하나씩 주어진다. 각 줄에는 측정된 물건 번호를 나타내는 두 개의 정수가 공백을 사이에 두고 주어지며, 앞의 물건이 뒤의 물건보다 더 무겁다. www.acmicpc.net [ 풀이 ] 플로이드 와샬문제라고 한다. 그런데 굳이 플로이드 와샬(3중루프) 안써도 BFS로도 풀 수 있다. 관련된 문제는 백준 "역사"문제와 "케빈베이컨 6가지 법칙"과 유사하다. (특히 역사문제를 강추한다) [ 백준 1613 - 역사..
https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 이동은 상하좌우로 이웃한 육지로만 가능하며, 한 칸 이동하는데 한 시간이 걸린다. 보물은 서로 간에 최단 거리로 이동하는데 있어 가장 긴 시간이 걸리는 육지 두 곳에 나뉘어 묻혀있다. 육지를 나타내는 두 곳 사이를 최단 거리로 이동하려면 같은 곳을 두 번 이상 지 www.acmicpc.net [풀이] 전형적인 bfs문제이긴한데 방문체크를 해놓는다. [코드1] Python3로하면 시간초과/ PyPy3로하면 통과(155584KB, ..
https://www.acmicpc.net/problem/1182 1182번: 부분수열의 합 첫째 줄에 정수의 개수를 나타내는 N과 정수 S가 주어진다. (1 ≤ N ≤ 20, |S| ≤ 1,000,000) 둘째 줄에 N개의 정수가 빈 칸을 사이에 두고 주어진다. 주어지는 정수의 절댓값은 100,000을 넘지 않는다. www.acmicpc.net [풀이] backtracking을 이용해서 풀었다. import sys input=sys.stdin.readline N,S=map(int, input().strip().split()) A=[*map(int,input().strip().split())] A=sorted(A) #오름차순으로 정렬 result=0 def backtracking(n, s): global..
https://www.acmicpc.net/problem/1261 1261번: 알고스팟 첫째 줄에 미로의 크기를 나타내는 가로 크기 M, 세로 크기 N (1 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 미로의 상태를 나타내는 숫자 0과 1이 주어진다. 0은 빈 방을 의미하고, 1은 벽을 의미한다. (1, 1)과 (N, M)은 항상 뚫려있다. www.acmicpc.net [주저리 & 풀이] 1.그냥 BFS로 풀면되겠지 했는데 틀렸다. 2. BFS는 그대로 사용하되, 만일 현위치의 상/하/좌/우가 빈방(0)이라면 그쪽으로 먼저 이동하고 현위치 주변이 모두 벽이거나 이미 방문된 상태라면 벽을 깨면서 이동하는거라고 생각했지만 예제들은 맞는데 채점을해보니 틀렸다 ㅠㅠ 3. 다익스트라로 풀어보려고 했는..
https://www.acmicpc.net/problem/16936 16936번: 나3곱2 나3곱2 게임은 정수 하나를 이용한다. 가장 먼저, 정수 x로 시작하고, 연산을 N-1번 적용한다. 적용할 수 있는 연산은 두 가지 있고, 아래와 같다. 나3: x를 3으로 나눈다. x는 3으로 나누어 떨어져야 한다. 곱2: x에 2를 곱한다. 나3곱2 게임을 진행하면서, 만든 수를 모두 기록하면 수열 A를 만들 수 있다. 예를 들어, x = 9, N = 6이고, 적용한 연산이 곱2, 곱2, 나3, 곱2, 나3인 경우에 A = [9, 18, 36, 12, www.acmicpc.net [풀이] 나는 DFS를 이용하여 풀었다. DFS+ 재귀함수 를 활용해야한다. 그리고 문제입력에서 수열B는 수열A의 순서를 임의로 섞은..
https://www.acmicpc.net/problem/1946 1946번: 신입 사원 첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성적, 면접 성적의 순위가 공백을 사이에 두고 한 줄에 주어진다. 두 성적 순위는 모두 1위부터 N위까지 동석차 없이 결정된다고 가정한다. www.acmicpc.net [풀이] 두 성적 순위(서류점수 순위, 면접점수 순위)는 모두 1위부터 N위까지 동석차 없이 결정된다. (1) i번째 지원자의 서류점수 순위(score[i][0])를 기준으로 정렬 (2) i번째 지원자의 면접점수 순위(score[i][1])보..
- Total
- Today
- Yesterday
- 바이트디그리
- 스마트폰중독
- typeORM
- IT용어
- 갓생살자
- Jekyll
- 개발용어
- 참고
- 디지털디톡스
- TDD
- nestjs jest
- jest
- Mongoose
- 클린아키텍쳐
- 한달독서
- 나도 할 수 있다
- MySQL
- gem
- node.js
- Nest.js
- OS
- TypeScript
- RDBMS
- nestjs
- vscode
- 한달어스
- 습관개선
- git
- MongoDB
- 미완
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |