https://www.acmicpc.net/problem/10026 10026번: 적록색약 문제 적록색약은 빨간색과 초록색의 차이를 거의 느끼지 못한다. 따라서, 적록색약인 사람이 보는 그림은 아닌 사람이 보는 그림과는 좀 다를 수 있다. 크기가 N×N인 그리드의 각 칸에 R(빨강), G(초록), B(파랑) 중 하나를 색칠한 그림이 있다. 그림은 몇 개의 구역으로 나뉘어져 있는데, 구역은 같은 색으로 이루어져 있다. 또, 같은 색상이 상하좌우로 인접해 있는 경우에 두 글자는 같은 구역에 속한다. (색상의 차이를 거의 느끼지 못하는 경우도 같은 www.acmicpc.net [풀이] 전형적인 BFS, DFS 활용 문제이다. 여기서 주의해야되는게 정상인이 볼 수 있는 구역의 개수와 적록색약인 사람이 볼 수 있..
https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 같은 자연수이다. www.acmicpc.net [ 코드 ] import sys input=sys.stdin.readline #집의 수 N=int(input()) #집 HOUSE=[ [*map(int, input().strip().split())] for _ in range(N)] #현재N의 색깔과 N-1집 색깔은 서로 같지 않으므로, 점화식을 세우면 # DP[N][0]= HOUSE[N][0]+ min(D..
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 벽 또는 빈 칸이다. 청소기는 바라보는 방향이 있으며, 이 방향은 동, 서, 남, 북중 하나이다. 지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다. 로봇 청소기는 다음 www.acmicpc.net 문제를 꼼꼼히 잘 읽는 습관을 들이자. BFS 를 활용하고, 문제를 이해했다면, 푸는데 어려움이 없다. 그리고 문제의 예제2에서 ..
https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 문제 정사각형으로 이루어져 있는 섬과 바다 지도가 주어진다. 섬의 개수를 세는 프로그램을 작성하시오. 한 정사각형과 가로, 세로 또는 대각선으로 연결되어 있는 사각형은 걸어갈 수 있는 사각형이다. 두 정사각형이 같은 섬에 있으려면, 한 정사각형에서 다른 정사각형으로 걸어서 갈 수 있는 경로가 있어야 한다. 지도는 바다로 둘러쌓여 있으며, 지도 밖으로 나갈 수 없다. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 www.acmicpc.net [풀이 ] 전형적인 BFS 문제이다. 섬의 개수를 카운트할 때 MAP[h-1][w-1] 을 시작으로 했다. [코드] import sys f..
https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net [풀이] 나쁜 수열 123123 (123 123 인접) 나쁜 수열 11 (1 1 인접) 좋은 수열 1231 12323 인경우에는 23 23이 인접이 되어있기 때문에 나쁜 수열이다. 나쁜수열은 즉 인접한 부분이 동일한 패턴인 것을 뜻한다. 그리고 여기서 가장 좋은건 가장 작은 수를 찾아야한다. 즉 먼저 N에 도달하는 숫자를 출력하면된다. 나는 N에 도달하게되면, 재귀호출을 그만하도록 하는 변수 isStop을 만..
https://www.acmicpc.net/problem/2011 [BA] - 새로운 알파벳문자로 암호를 만드는 경우 1번째 숫자: 1 / 2번째 숫자: 2 => (1x10)+2 =12 =>[L] 바로 이전의 숫자x10 + 현재숫자 의 결과가 10~26 사이라면, J~Z 사이의 알파벳으로 변환 할 수 있다. 이를 식으로 변환하면, PW[i-1]*10+PW[i] 이다. 따라서 만들수 있는 암호는 [BA, L] 이므로, DP[2]= 2 * 3번째 자리 암호 숫자: 1 * - 이전에 만든 암호에 현재 암호를 붙이는 경우(1='A') [BA]+[A] => [BAA] [L]+[A] => [LA] - 새로운 알파벳 문자로 암호를 만드는 경우 2번째 숫자: 1 / 3번째 숫자: 1 => (1x10)+1=11 =>[K..
https://www.acmicpc.net/problem/1759 1759번: 암호 만들기 첫째 줄에 두 정수 L, C가 주어진다. (3 ≤ L ≤ C ≤ 15) 다음 줄에는 C개의 문자들이 공백으로 구분되어 주어진다. 주어지는 문자들은 알파벳 소문자이며, 중복되는 것은 없다. www.acmicpc.net [백트래킹에 대한 주저리] 백트래킹을 공부하는데 아주 좋은 문제이다. 나는 재귀호출을 이용한 백트래킹을 했다. 이부분이 제일 약해서 집중적으로 공부할 예정이다 ㅠㅠ 백트래킹이 약한만큼, 다른사람들의 코드를 보면서 배워나갈 것이다! 화이팅 하자 ㅎㅎ! [풀이] L : 조교가 만들려고 한 암호 길이 words : 암호를 만드는데 사용한 알파벳 소문자들 C : words 리스트의 길이 (알파벳 개수) 1. ..
https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net import sys def main(): N=int(sys.stdin.readline()) A=list(map(int, sys.stdin.readline().split())) dp=[0]*N dp[0]=A[0] max_val= float('-inf') for i in range(1,N): dp[i]= max(dp[i-1]+A[i], A[i]) max_val= max(max_val, dp[i]) max_val..
- Total
- Today
- Yesterday
- TDD
- 디지털디톡스
- Nest.js
- IT용어
- 갓생살자
- Mongoose
- RDBMS
- 바이트디그리
- 한달어스
- nestjs jest
- Jekyll
- nestjs
- MongoDB
- 클린아키텍쳐
- gem
- 개발용어
- 스마트폰중독
- MySQL
- 한달독서
- OS
- 습관개선
- git
- jest
- node.js
- 미완
- TypeScript
- 나도 할 수 있다
- vscode
- 참고
- typeORM
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |