일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- notion
- 다이나믹프로그래밍
- 발자취
- 접근법
- 알고리즘
- Notion to Github Markdown
- 패스트캠퍼스
- js
- 현파랑
- java
- dp
- Prettier
- ESLint
- webpack
- 프로그래멋
- IT-Note
- 면접
- 백준
- spring
- spring-mvc
- 개발상식
- 동적계획법
- 1003
- 코딩테스트
- react
- DFS
- 완전탐색
- CONVERTER
- BFS
- vsCode
- Today
- Total
목록개발자 지식/Algorithm (7)
두 번째 뇌
개요 백준 1010번 문제입니다. 문제 https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 접근법 주어진 그림이 어려울 수 있는데, 직접 점과 선으로 연결해보면 이 형태가 파스칼 삼각형을 이루는 것을 알 수 있습니다. 그에 맞춰 구현합니다. 코드 🤩 : DP /** * 입력 */ // const fs = require('fs'); // const os = require('os'); // const input = fs.readFileSync('dev..
개요 백준 1003번 피보나치 함수 문제입니다. top-down 형식의 재귀풀이가 아닌 bottom-up 형식의 DP를 사용하여 풀었습니다. 문제 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 접근법 코드 🤩 : DP # 메모이제이션 N = int(input()) result = [] for _ in range(N): T = int(input()) dp = [[1, 0], [0, 1], [1, 1], [1, 2]] + [[0, 0] for _ in range(T-3)] for i in range(4, T+1): dp[i][0] = dp[i..
1003번 문제 피보나치 함수 접근법 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 피보나치 수에 적용되는 규칙은? 메모이제이션(Memoization)을 활용해봅니다. 9184번 문제 신나는 함수 실행 접근법 9184번: 신나는 함수 실행 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다. www.acmicpc.net 1003번의 응용입니다. 1904번 문제 01타일 접근법 1904번: 01타일 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물..
11654번 문제 아스키 코드 접근법 11654번: 아스키 코드 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. www.acmicpc.net ord() 함수를 사용하면 해당 문자의 아스키코드를 가져올 수 있고, chr() 함수를 사용하면 해당 아스키코드를 문자로 변경할 수 있습니다. 11720번 문제 숫자의 합 접근법 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 문자열은 배열 기능을 지원하므로 loop를 돌면서 원소를 int()로 정수형 치환 후 누적합을 반환합니다. 10809번 문제 알파벳 찾기 접근법 10809번..
개요 상반기 카카오 인턴십 문제로 출제되었던 Level 2 코딩테스트 문제입니다. DFS를 충분히 활용해서 풀어야겠지만... 아직 이론을 이해하지 못해서ㅠ 코드가 길어진 것 같습니다. 문제 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP..
개요 주어지는 배열에서 특정 값을 찾아내는 알고리즘을 작성할 때, 일반적으로 loop문을 두 번 중첩해서 사용합니다. 물론 주어지는 배열의 크기가 10,000 이하인 경우 최대 O(n^2) 내에서 해결하면 되므로 문제가 없으나.... 그 이상이 주어진다면 그 속도는 기하급수적으로 차이가 납니다. 투 포인터 알고리즘은 포인터 두개를 둬서, 시간복잡도를 O(n) 내로 해결하는 방식입니다. 문제 주어지는 수열에서 연속부분수열의 합이 특정숫자 M이 되는 경우가 몇 번 있는지 구하는 프로그램을 작성하라. 만약 M=6이고 수 열이 다음과 같다면 1 2 1 3 1 1 1 2 합이 6이 되는 연속부분수열은 {2, 1, 3}, {1, 3, 1, 1}, {3, 1, 1, 1}로 총 3가지이다. ▣ 입력설명 첫째 줄에 M(..
개요 생각치도 못한 부분에서 틀려버렸습니다... 2중 loop를 돌긴 하지만, 숫자를 효율적으로 사용하지 못해 예상 테스트 케이스도 깨지 못해서 강의를 보았더니... 훨씬 좋은 내용이 있네요. 다시 풀어봐야겠습니다. 문제 N개의 자연수가 입력되면 각 자연수의 자릿수의 합을 구하고, 그 합이 최대인 자연수를 출력하는 프로그램을 작성하라. 자릿수의 합이 같은 경우 원래 숫자가 큰 숫자를 답으로 한다. 만약 235와 1234가 동시에 답이 될 수 있다면 1234를 답으로 출력한다. ▣ 입력설명 첫 줄에 N(3 { let arr = [460, 603, 40, 521, 127, 123, 235, 1234]; expect(solution(arr)).toEqual(1234); });// failed, 460이 나옴 ..