문제보러가기 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 이문제는 DP의 개념과 배열로 삼각형을 접근하는 방법만 알면 어렵지않게 풀 수 있는 문제였던것 같다. 문제풀이 -DP배열에 이전까지와 현재 값을 더한것중 큰것을 넣는다. -위의 그림처럼 배열이 생성되고 따라서 빨간 화살표부분이 DP[i][j]이면 DP[i-1][j-1],DP[i-1][j]에서 내려올 수 있는 것이다. -따라서 DP[i][j] =Math.max(dp[i-1][j-1], dp[i-1][j])+triangle[i][j] 가 된다. -여기서 고민해 봐야할 것은 삼각형 면들에 있는 즉 j==0일때와 j==i일때의 경우..
문제보러가기 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 �� programmers.co.kr 이문제는 해시와 정렬을 이용해 풀 수 있는 문제였다. 깔끔하게 풀고 싶었으나 답이 나오게 문제를 풀기만 한 것 같다...ㅎ 문제풀이 -장르별로 어떤 노래가 있는지 구분하기 위해 Map을 이용해 저장해준다. -각 장르 안에서 노래들은 재생 횟수가 높은 순, 같은 재생 횟수일 경우 고유번호(인덱스가 사용됨)가 낮은 순으로 저장할 수 있도록 PriorityQueue를 사용하고 정렬 기준을 정해주기 위해 compareTo함수를 구현해 준다. -장르별..
문제보러가기 코딩테스트 연습 - 위장 programmers.co.kr 이 문제는 나의 수학 기억력이 이 정도라니... 라는걸 깨닫게 한 문제였다. 조합이길래 조합 코드 만들어서 사용했는데 시간 초과!!!! 모든 조합수 구하면 안 돼요~ 문제풀이 -각각의 key, value로 저장할 수 있는 자료구조인 Map을 이용해 저장한다 -> key : 의상의 종류 , value : 의상 이름 *value가 여러 개일 수 있으므로 리스트로 저장한다 -같은 key의 의상끼리는 조합을 만들 수 없고 다른 key끼리가 조합이 가능하며 하나만 입는 경우는 있으나 하나도 안 입는 경우는 없다 -경우의 수를 구해보면 A, B, C종류(key)의 의상이 있고 A, B, C가 각각의 종류에 해당하는 의상 개수(value)일 때 식..
문제보러가기 코딩테스트 연습 - N으로 표현 programmers.co.kr 이문제는 dp로 분류되어있는 문제이다. dp란 작은 문제로 쪼개서 그 작은 문제를 저장해 놓았다가 다시 사용하며 답을 구하는 것이다.라고 생각했는데 처음에 이 문제가 어떻게 dp로 접근하지..? 여기부터 막혔었다..ㅎ 1개 사용 2개 사용을 이용해서 3개 사용을 할 수 있다는 것을 깨닫고 저장하여서 풀었던 문제이다! 개념이 흔들리니 문제 풀기가 막막했다는... dp알고리즘에 대한 개념을 제대로 정리해봐야겠다고 생각했다 문제풀이 -주어진 N이 1 ~ 8개로 만들 수 있는 모든 숫자를 dp에 저장한다. -dp [i] = {dp [j] , dp [j-i]} -> ex) dp [3] = {dp [1] , dp [2]} , {dp [2]..
문제보러가기 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 이문제의 포인트는 주어진 단어의 한글자만 바꾼 단어가 주어진 단어의 집합에 있는지 확인하면서 진행해 나가는 과정이었다! 처음에는 단어를 바꾸니까 subString()을 쓰면 되겠다! 했는데 더 복잡해졌다는,,,, 문제풀이 -주어진 단어집합에 내가 비교하는 단어에서 한글자만 다른단어가 있는지 탐색 -visited == false라면 dfs에 그 단어로 다시 dfs진행 -target과 같아질때까지 비교 나는 한..
문제보러가기 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 이문제는 DFS/BFS 카테고리에 있는 level2문제로 간단한 편이라고 할 수 있다. 요새 계속 알고리즘을 풀어도 실력이 느는것 같지 않길래 우선 카테고리부터 정복하자! 해서 시작했다. 풀이 방법도 딱히 없이 dfs로 -일때와 +일때를 나눠서 해결해주면 되는 문제였다. package programers; public class TargetNum { static int answer; public ..
- Total
- Today
- Yesterday
- DP
- Spring
- 알고리즘
- 삼성 sw역량 테스트
- 채팅
- BFS
- 코딩테스트
- 최소 스패닝 트리
- java
- JavaScript
- git
- OS
- sockjs
- 분리 집합
- 정렬
- 완전탐색
- 백준
- websocket
- dfs
- programers
- 운영체제
- SWEA
- 자바
- Baekjoon
- Stomp
- 프로그래머스
- 삼성 sw역량테스트
- MST
- Heap
- Oracle
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |