https://www.acmicpc.net/problem/1987 1987번: 알파벳 문제 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으로 이동할 수 있는데, 새로 이동한 칸에 적혀 있는 알파벳은 지금까지 지나온 모든 칸에 적혀 있는 알파벳과는 달라야 한다. 즉, 같은 알파벳이 적힌 칸을 두 번 지날 수 없다. 좌측 상단에서 시작해서, 말이 최대한 몇 칸을 지날 수 있는지를 구하는 www.acmicpc.net [풀이] 이전에 맞았다고했는데, 데이터 추가로 재채점한 결과 틀린 상태가 되어서 다시 풀어보기로 했다. DFS를 이용해서 풀었다. MAP의 ..
https://www.acmicpc.net/problem/2096 2096번: 내려가기 첫째 줄에 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 숫자가 세 개씩 주어진다. 숫자는 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 중의 하나가 된다. www.acmicpc.net [풀이] [코드] import sys input=sys.stdin.readline N=int(input()) MAP=[ [*map(int, input().strip().split())]for _ in range(N)] DP_MAX=[ [0]*3 for _ in range(2)] DP_MIN=[ [0]*3 for _ in range(2)] DP_MAX[0][0]=DP_MIN[0][0]=MAP[0][0] DP_MA..
https://programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr [풀이] (1) PSUM : 장르별 총 재생횟수를 비교한다. => PSUM을 내림차순 정렬한다. PSUM은 딕셔너리이며 키(Key)값은 장르이고, Value값은 해당장르를 재생한 횟수들의 총 합이다. (2) G[장르] =[ (재생횟수1, 고유번호1), (재생횟수2, 고유번호2) ... ] & 장르별 노래선택 [ 노래를 선택 최대 횟수 ] 장르에 있는 노래들을 리스트에 넣는다. 여기서 주의해야할게 장르별로 최대..
https://www.acmicpc.net/problem/1022 1022번: 소용돌이 예쁘게 출력하기 첫째 줄에 r1, c1, r2, c2가 주어진다. 모두 절댓값이 5000보다 작거나 같은 정수이고, r2-r1은 0보다 크거나 같고, 49보다 작거나 같으며, c2-c1은 0보다 크거나 같고, 4보다 작거나 같다. www.acmicpc.net [풀이] 소용돌이의 위치에 따라서 왜 이 값이 나오는지 규칙성을 확인하면 풀 수 있다! 실제로 이 풀이는 내가 직접 생각해서 푼 풀이가 아니다. 블로그를 참고했다..ㅠ 블로그의 저자의 간결하고 명쾌한 코드.. 배워간다. ㅠㅠ 내가 시도한 코드와 다르게 (r1,c1), (r2,c2)의 위치를 변경하지 말고 그대로 둔다. 그리고 이 풀이는 점의 위치값에 따라 나오는 ..
https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net [풀이] 순열(Permutations)를 이용하여 풀 수 도있는데 DFS 연습겸으로 DFS를 이용하여 풀었다. [코드 Python] import sys from copy import deepcopy input=sys.stdin.readline def dfs(visited, nums): global M, N if len(nums)==M: print(' '.join(nums)) else: ..
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 - 역사..
- Total
- Today
- Yesterday
- TypeScript
- Mongoose
- typeORM
- MySQL
- Nest.js
- 나도 할 수 있다
- gem
- 습관개선
- TDD
- 클린아키텍쳐
- vscode
- OS
- MongoDB
- 개발용어
- git
- node.js
- nestjs
- 디지털디톡스
- 스마트폰중독
- IT용어
- 한달독서
- nestjs jest
- RDBMS
- Jekyll
- 바이트디그리
- 갓생살자
- 미완
- jest
- 한달어스
- 참고
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |