일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 주니어
- 스타트업
- 배열
- Java
- dfs
- docker
- 자료구조
- 해시맵
- HTTP
- 이직
- 스프링 부트
- 프로그래머스
- 구름LEVEL
- 명령어
- 해결
- bfs
- 문자열
- 백엔드
- spring
- 개발자
- Linux
- IntelliJ
- 스프링
- spring boot
- 도커
- HashMap
- 인텔리제이
- 구현
- 코딩테스트
- 스프링부트
- Today
- Total
목록코딩테스트/프로그래머스 (47)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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이기 때문..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 새로 생긴 1단계 문제. 제시된 방식대로 구현하여 해결했으나 내 코드의 디테일이 아쉬웠다. - 제시된 문자열 s를 char 배열로 변환함 - 배열 arr을 탐색하며 한 글자(arr[i])씩 조건에 맞게 증가시킴 - 먼저 1을 증가시키고(처음에 주어진 문자는 skip과 겹치지 않음), z를 넘어가는 경우 a로 변환 - 문자가 skip 문자열에 포함된다면 계속 증가, z를 넘어가는 경우 a로 변환 - 배열을 String으로 변환 후 반환 Note - 로직 자체는 문제가 없으나 다른 사람이 제출한 내용을 보고나서 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 해시맵 두 개를 활용하여 간단하게 해결할 수 있는 문제였다. 로직 설명 - 해시맵 map을 선언하여 want와 number 배열로부터 목표로 하는 할인 정보(제품명, 수량) 저장 - (discount 배열을 탐색하며) 해시맵 dMap을 선언하여 일별로 10일 간의 할인 정보 저장 - 생성된 dMap과 map을 비교하여 수량이 다른 경우 isIdentical 변수 false로 지정 - 두 해시맵이 동일하면 answer 증가 작성 코드 import java.util.*; class Solution { ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 길이가 길고 주어진 숫자가 큰데 반해 뽑아서 사용해야하는 숫자는 가장 작은 두 개였기 때문에 효율적인 정렬을 위해 우선순위 큐(PriorityQueue)를 사용해서 문제를 해결했다. - scoville 배열을 우선순위 큐에 삽입 - (최소 스코빌 지수가 K보다 작으면서 2개 이상 스코빌지수가 남아있는 동안 반복하여) 가장 작은 두 수를 추출하여 혼합 후 다시 큐에 삽입 - 반복문 종료 후에도 최소 스코빌 지수가 K보다 작으면 실패, 아니면 성공 Note - 처음에 트리맵을 떠올렸는데, 둘을 비교해서 찾아보니 ..