일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- BOJ
- 2206번
- Dxerr.h
- Adapater Pattern
- DxTrace
- 11758번
- 1043번
- java의 정석
- 11286번
- 백준
- 프로그래머스
- Spring
- 2166번
- 코딩테스트
- programmers
- Design Pattern
- springboot
- SerialDate 리펙터링
- 9장
- 2156번
- 코딩 테스트
- 17장
- 자바의 정석
- 클린코드
- java
- Design Patterns
- 가장 긴 증가하는 부분 수열2
- 10830번
- 1300번
- 냄새와 휴리스틱
- Today
- Total
목록프로그래머스 (36)
Don't give up!
코딩테스트 연습 - 조이스틱 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 좌/우 방향을 결정하는 요소는 '어디서 다음 상/하 버튼을 눌러야하는가?'입니다. 만약 다음 위치까지 좌측버튼을 누르는 횟수가 우측 버튼을 눌러야 하는 횟수보다 작다면 좌측버튼을 눌러 이동하여야 합니다. 이동한 후에도 탐색방향을 결정해야 하는데, 이는 탐색해야할 문자의 수를 통해 결정할 수 있습니다. 전체적으로 누르게 될 상/하 ..
코딩테스트 연습 - 멀쩡한 사각형 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 시작점 (0,0), 도착점 (h,w)인 직선은 (1,w/h), (2,2w/h)인 점을 지나갑니다. 직선의 기울기가 일정하므로 직선이 지나는 사각형의 패턴은 y값이 정수가 정수로만 이루어진 점들 사이의 구간의 패턴으로 볼 수 있습니다. 따라서 (0,0)부터 정수 (x,y)까지의 범위에서 직선이 지나는 사각형의 수 X 패..
코딩테스트 연습 - 게임 맵 최단거리 | 프로그래머스 (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함수로 이를 구..