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://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 | 프로그래머스 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr [ 풀이 ] 전형적인 그리디(Greedy) 문제이다. 나는 그리디 문제를 풀 때 정렬을 사용한다. 1. 정렬하기 일단은 먼저 도착점(routes[i][1]: i번째 인덱스 차량의 도착점)이 작은 것을 우선으로 한다. 만일 도착점이 동일할 경우에는 출발점(routes[i][0])이 작은 것을 우선으로 정렬한다. 2. 첫번째 차량의 도착점을 단속카메라 위치로 초기화한다. 그리고 두번째 차량 이후부터 i번째차량 시작점
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..
https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집들의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수 www.acmicpc.net [ 코드1] # -*- coding: utf-8 -*- # 2667. 단지번호 붙이기 import sys from itertools import chain from..
https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마 www.acmicpc.net [ 코드1] # -*- coding: utf-8 -*- # 7576. 토마토 import sys from collections import..
- Total
- Today
- Yesterday
- TypeScript
- Mongoose
- 개발용어
- Nest.js
- git
- OS
- 디지털디톡스
- nestjs jest
- RDBMS
- TDD
- Jekyll
- MongoDB
- 클린아키텍쳐
- gem
- 갓생살자
- IT용어
- 바이트디그리
- node.js
- 습관개선
- nestjs
- vscode
- 나도 할 수 있다
- 스마트폰중독
- MySQL
- 한달독서
- typeORM
- 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 | 31 |