일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 구현
- 코딩테스트
- 프로그래머스
- docker
- 자료구조
- dfs
- 도커
- 배열
- HashMap
- spring boot
- 스프링부트
- bfs
- 주니어
- 개발자
- 명령어
- 인텔리제이
- IntelliJ
- Linux
- 문자열
- 스타트업
- 구름LEVEL
- 스프링 부트
- 백엔드
- spring
- 이직
- 해결
- 해시맵
- 스프링
- HTTP
- Java
- Today
- Total
목록Java (45)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Least Recently Used (LRU) 캐시 알고리즘을 구현하는 문제로 특이사항은 없었다. - cacheSize가 0인 경우 전부 miss이므로 (5 * cities 배열 길이) 반환 - cache로 사용할 LinkedList 선언 - cities를 탐색하며 1) 도시 이름 city 소문자로 변경 2) cache를 탐색하며 hit인 경우 현재 위치의 city 제거 후 0번 위치에 city삽입, isHit true로 변경 (시간: 1) 3) miss인 경우(!hit) cache가 찼는지를 확인하여 마지막..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 완전 탐색으로 풀었다가 몇몇 테스트 케이스에서 시간 초과가 나서 그리디로 변경해서 푼 문제이다. - 한 번 탐색 시 한 자릿수의 최대값을 찾아야함 - 한 번 탐색 시 탐색 범위는 '탐색할 한 자릿수를 제외한 나머지 자릿수를 문자열의 마지막에 몰아넣은 상태에서 남는 모든 자릿수'임. - 예를 들어, number = 4177252841, k = 4인 경우 첫 번째 반복 시 41772까지 탐색하고, 52841은 뒤에 몰아넣은 상태에서 41772에서의 최대값인 첫번째 7을 결과에 추가함. 두 번째 반복 시에는..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 예외사항이 너무 많은데 테스트케이스 오픈이 안 되어있어 다른 사람들의 힌트를 참고하여 케이스를 하나씩 때려잡아야 했던 문제이다(코드참조 x). 그래서 그런지 5점이나 주긴 했는데 풀어놓고도 딱히 다른 문제풀이에 도움이 될 것 같진 않다는 인상을 많이 받았다. - 주어진 숫자 storey를 오른쪽에서부터 한 자리씩 탐색함 - 자릿수가 0~4일 때는 빼서 내림하는게 유리함 (첫 번째 if문) - 자릿수가 6~9일 때는 더해서 올림하는게 유리함 (두 번째 if문) - 자릿수가 5일 때 1) 직전 자릿수(현재의 오른..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 전체 조합 만들기 + 소수 구하기의 두 가지를 수행하면 해결할 수 있는 문제이다. - 문자열 쪼개서 배열로 저장하기 : String[] arr - arr 각 요소의 방문 여부를 체크해줄 int 배열 선언 : int[] visited - 전체 조합 숫자를 넣어줄 set 선언: HashSet set - 재귀 함수를 사용하여 완전 탐색을 통해 전체 문자열의 조합 구하기 : private void addNum 1) 현재 문자열 삽입 (빈문자열 제외) 2) arr 배열을 탐색하며 2-1) visited 배열에서 방문체..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 완전탐색으로 전체 경우의 수를 비교하기에는 데이터의 양이 너무 많기 때문에(배열 길이: 100,000) 최대값을 구할 수 있는 알고리즘을 찾아 적용해야만 하는 문제였다. - 문자열 배열로 변환 - Comparator 재정의 (기준 : 두 개의 문자열을 앞뒤로 바꿔 붙인 2개의 수를 Integer로 변환했을 때 더 큰 수가 앞으로 오도록) 및 정렬 수행(Arrays.sort()) - StringBuilder를 활용하여 앞에서부터 문자열 전부 이어주기 - 가장 앞자리(가장 큰 수)가 0인 경우 전체가 0이기 때문..