일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 냄새와 휴리스틱
- 11758번
- 자바의 정석
- springboot
- Spring
- DxTrace
- 클린코드
- Design Pattern
- 1300번
- java의 정석
- 프로그래머스
- java
- Design Patterns
- 가장 긴 증가하는 부분 수열2
- 9장
- Adapater Pattern
- BOJ
- SerialDate 리펙터링
- 백준
- 코딩 테스트
- 2166번
- Dxerr.h
- programmers
- 1043번
- 10830번
- 11286번
- 코딩테스트
- 2156번
- 2206번
- 17장
- Today
- Total
목록코딩테스트 (16)
Don't give up!
코딩테스트 연습 - 게임 맵 최단거리 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 그래프 탐색이므로 DFS 또는 BFS를 사용해야 겠다고 생각이 들었습니다. DFS를 사용할 경우 모든 경로를 탐색한 후 거리들을 비교하여 최소값을 반환하여 해결할 수 있지만 BFS는 먼저 목적지에 도달한 경로가 최단 거리의 경로이므로 더 빠르게 결과를 얻을 수 있다고 생각했습니다. 코드..
코딩테스트 연습 - H-Index | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - H-Index H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 오름차순으로 정렬된 배열에서 원소보다 같거나 더 큰 인용횟수를 가진 논문은 더 높은 인덱스를 갖습니다. 만약 [6,6,6]과 같이 조건을 만족하는 인용횟수 최솟값이 (논문의 수 - 원소의 인덱스) 값보다 큰 경우 더 작은 값을 h 값으로 저장해야합니다. 각 원소를 순회하며 원소 값과 원소 값 이상의 인용횟수를 가..
코딩테스트 연습 - 타겟 넘버 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 서로 다른 수들의 합 또는 차로 타겟 넘버가 결정되기 때문에 모든 경우를 직접 계산하여 확인하여야 한다고 생각했다. k번째 정수까지 계산을 끝냈을때 k+1번째 정수는 + 또는 -로 두가지 경우의 결과를 계산하여야 합니다. 이러한 문제를 DFS(깊이 우선 탐색)을 통해 간단한 코드로 해결하고자 하..
코딩테스트 연습 - 오픈채팅방 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 입력 받는 문자열들은 모두 "[행동] [유저아이디]" 또는 "[행동] [유저아이디] [닉네임]"으로 이루어져 있습니다. 가장 마지막에 입력된 닉네임으로 메시지에 출력되기 때문에 유저아이디 - 닉네임으로 먼저 저장을 하는 작업을 수행한 후 행동에 따른 메시지를 출력하는 것으로 문제를 해결할 수 있다고 생각하였습니다. 코드 import java.uti..
코딩테스트 연습 - 큰 수 만들기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 탐욕 알고리즘을 사용하고자 했습니다. 탐욕 알고리즘이란 주어진 상황에서 최적을 선택해나가 답을 구하는 알고리즘입니다. 고려 대상에 두개의 문자만을 두고 앞 자리의 수가 뒷 자리의 수보다 클때까지 앞 자리수를 삭제하는 식으로 문제를 해결하고자 하였습니다. 중간에 삭제되는 문자가 있을 수 있습니다. 이를 고려하여 LIFO인 자료구조 Stack을 활용하고자 하였습니다. 코드 import java.util.Stack; class Solution { public String solution(String number, int k) ..
코딩테스트 연습 - 가장 큰 수 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 가장 큰 수 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 두 정수를 어느 순서로 이어붙이느냐에 따라 만들 수 있는 수의 크기가 다르다는 것은 문자열 두개를 다른 순서로 이었을 때 첫 문자부터 비교를 시작하여 문자 값이 다른 구간이 존재한다라는 것을 의미합니다. C언어에서는 compare함수로, java에서는 compareTo함수로 이를 구..
코딩테스트 연습 - 다리를 지나는 트럭 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이 programmers.co.kr 문제해석 순서상 앞에 있는 대기트럭이 먼저 다리를 건너고, 모든 트럭의 속도가 1초에 1로 동일하므로 다리를 건너는 트럭들도 먼저 건너기 시작한 트럭이 먼저 지날 것입니다. 따라서 First In, First Out(FIFO)의 규칙을 가지고 있는 Queue를 활용한다면 쉽게 문제를 해결할 수 있다고 생각하였습니다. 풀이 import java.util.*;..
코딩테스트 연습 - 기능개발 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 문제해석 개발에 소요된 기간 계산은 {100-(작업진도)}/(개발속도) 로 계산할 수 있습니다. 먼저 개발된 기능은 순서상 앞에 있는 기능의 배포와 함께 이루어지므로 이전 기능의 개발 기간과 대소 비교를 통해 문제를 해결할 수 있다고 생각하였습니다. 풀이 class Solution { public int[] solution(int[] progresses, int[] speed..