일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고리즘
- spring-mvc
- 1003
- CONVERTER
- 동적계획법
- Notion to Github Markdown
- react
- 현파랑
- webpack
- 면접
- 코딩테스트
- DFS
- 백준
- IT-Note
- notion
- vsCode
- 다이나믹프로그래밍
- dp
- 패스트캠퍼스
- ESLint
- 개발상식
- 프로그래멋
- Prettier
- 발자취
- js
- java
- 완전탐색
- 접근법
- BFS
- spring
- Today
- Total
목록알고리즘 (7)
두 번째 뇌
개요 백준 1167번 문제입니다. 문제는 풀었는데... 접근하는 방법(공식)을 모르고 있었던 상태였습니다. 그림으로 그려보면서 어떤 규칙이 있는지 찾아보았습니다. 그 결과, 속도가 매우 느리더군요ㅠ 문제 https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 접근법 저 같이 그림을 그려서 할 정도로 이해가 안되시거나, 접근법이 떠오르지 않으시는 분들은 '트리의 지름'이라고 구글링 해보세요. 이러한 문제에서 나타나는 규칙을 공식화 해둔 ..
개요 백준 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..
개요 생각치도 못한 부분에서 틀려버렸습니다... 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이 나옴 ..