일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- DxTrace
- Dxerr.h
- 2156번
- 10830번
- 코딩 테스트
- BOJ
- Design Patterns
- 1043번
- java
- 백준
- Adapater Pattern
- java의 정석
- 2206번
- 자바의 정석
- springboot
- 17장
- 11758번
- SerialDate 리펙터링
- Spring
- 11286번
- 클린코드
- programmers
- 1300번
- 가장 긴 증가하는 부분 수열2
- 2166번
- 코딩테스트
- 프로그래머스
- Design Pattern
- 냄새와 휴리스틱
- 9장
- Today
- Total
목록Coding Test (62)
Don't give up!
코딩테스트 연습 - 단체사진 찍기 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 단체사진 찍기 단체사진 찍기 가을을 맞아 카카오프렌즈는 단체로 소풍을 떠났다. 즐거운 시간을 보내고 마지막에 단체사진을 찍기 위해 카메라 앞에 일렬로 나란히 섰다. 그런데 각자가 원하는 배치가 모두 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 프렌즈들은 A, C, F, J, M, N, R, T로 정해져 있습니다. 따라서 8!=40320가지의 케이스를 미리 생성해둔 후, 조건을 만족하지 않는 케이스들을 제거하여 문제를 해결할 수 있을 것이라고 생각하였습니다. 코드 import java.util.*; class Solution { ArrayList cases = new ArrayLi..
코딩테스트 연습 - 전화번호 목록 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 특정 원소가 다른 원소의 접미사인지 확인하기 위해 주어진 원소들을 먼저 저장하고, 각 원소들의 가능한 접미사가 저장한 원소에 해당한다면 false를 반환하는 방식으로 문제를 해결할 수 있을 것이라고 생각하였습니다. 코드 import java.util.*; class Solution { public boolean solution(String[..
코딩테스트 연습 - 방문 길이 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 방문 길이 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 좌표에 대한 기억이 아닌 이동한 길을 기억해야 하는 문제이므로 지나온 길을 저장하고, 중복 확인을 하여 처음 걸어본 길의 길이를 반환할 수 있다고 생각하였습니다. 코드 import java.util.*; class Solution { public int solution(String dirs) { int x=0,y=0; HashSet set = new HashSet(); for(char c : dirs.toCharArray()){ if(c=='U' && y-5){ set.add(new Path(x,y,x,y-1)); y=y-1; ..
코딩테스트 연습 - 가사 검색 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 가사 검색 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? HashMap에 각 문자마다 검색될 수 있는 검색 쿼리를 미리 만들어 카운트를 추가함으로써 문제를 해결할 수 있을 것이라고 생각하였지만 호율성 테스트에서 실패하였습니다. 각 문자마다 길이x2-1개의 쿼리가 존재할 수 있기 때문에 상당히 많은 수의 키 값이 HashMap에 삽입되고, 이를 탐색하는 과정에서 많은 시간이 필요합니다. 문제에서 와일드카드 문자 '?'는 중간에 삽입되거나 양쪽에 존재하거나 존재하지 않는 경우는 고려하지 않습니다. 따라서 ?문자들이 접미사로 붙거나 접두사로 붙는 경우만 존재하므로 공통되는 알파벳 순서를 갖..
코딩테스트 연습 - 자물쇠와 열쇠 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 어떻게 생각하고 문제를 풀었는가? MxM 배열의 키는 회전이 가능하고 이동할 수 있습니다. 주어진 예시에서 알 수 있듯, 이동한 키의 원소 중 하나라도 자물쇠의 원소와 비교할 수 있다면 키의 역할을 수행할 수 있습니다. 주어진 조건에서 키 배열의 크기 M은 항상 자물쇠 배열의 크기 N 이하입니다. 따라서 키 배열의 마지막 열/행이 자물쇠 배열의 첫번째 열/행과 비교되는 케이스부터 키 배열의 첫번째 열/행이 배열의 마지막 열/행..
코딩테스트 연습 - 광고 삽입 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 문제에서 주어진 예시처럼 광고 삽입이 가능한 구간들 중에서 시청자들의 누적 재생시간이 가장 큰 구간을 찾아야 합니다. 누적 재생시간을 구하기 위해서 구간 내 시청자들의 수를 더하는 방법을 생각하였는데, 가능한 재생 구간이 초단위로 존재할 수 있고 각 재생 구간마다 시청자들의 수..
코딩테스트 연습 - 합승 택시 요금 | 프로그래머스 (programmers.co.kr) 어떻게 생각하고 문제를 풀었는가? 지점 k에서 A와 B가 택시를 따로 이용하여 목표지점으로 가는 경우 s->k까지의 최소비용 + k->A까지의 최소비용 + k->B까지의 최소비용으로 계산할 수 있습니다. 택시요금은 방향에 따라 달라지지 않습니다. 따라서 s에서 시작하여 각 지점까지의 최소비용, A에서 시작하여 각 지점까지의 최소 비용, B에서 시작하여 각 지점까지의 최소 비용을 미리 계산한 후 모든 k에 대한 비용 중 최소 값을 찾음으로서 전체 최소요금을 구할 수 있습니다. 코드 import java.util.*; class Solution { final int MAX = 20000001; int[][] lines; ..
코딩테스트 연습 - 디스크 컨트롤러 | 프로그래머스 (programmers.co.kr) 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 어떻게 생각하고 문제를 풀었는가? 주어진 작업들 중 소요시간이 짧은 작업을 먼저 수행하는 그리디 알고리즘으로 문제를 해결할 수 있을 것이라고 생각하였습니다. 작업의 수행은 LIFO의 자료구조인 Queue를 사용하고자 하였고, 작업 수행시간에 따른 정렬을 수행할 수 있는 PriorityQueue를 이용하는 것이 좋다는 생각을 하였습니다. 코드 import java.util..