일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 해결
- Java
- 해시맵
- bfs
- 자료구조
- 스프링
- HashMap
- spring
- 백엔드
- 도커
- HTTP
- 주니어
- spring boot
- 스프링부트
- IntelliJ
- 스타트업
- Linux
- 프로그래머스
- 문자열
- 구름LEVEL
- 명령어
- 구현
- 배열
- dfs
- 인텔리제이
- Today
- Total
목록코딩테스트 (45)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 내용만 보면 텍스트를 이리저리 다뤄야할 것 같았는데 막상 읽어보니 경우의 수를 구하는 문제였다. - HashMap을 선언하여 얼굴, 상의, 하의, 겉옷의 개수를 카운트함 - 종류별 옷의 개수에 안 입는 경우를 더한 후 곱하기 : (얼굴 + 1) * ... * (겉옷 + 1) - 마지막에 전부 안 입는 경우 1을 빼줌 Note - 고등학교 때 배운 조합식(nCr)을 바로 떠올리긴 했지만 구체적인 수식이 정확하게 기억나지 않아 개념을 찾다보니 결국 전체 경우의 수를 구하면 되는 문제라고 판단하게 되었다. - 전체..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 우선순위 대기열이다보니 스택이나 큐를 사용해서 풀어보려고 했는데 결국 반복문으로 해결했다. - 계속 한쪽방향으로 순회하며 1) 문서의 가장 큰 우선순위 여부 체크 2) 가장 큰 우선순위인 경우 프린트 (해당 문서 우선순위를 0으로 변경) 3) 프린트 순서(order) 증가 4) 프린트된 문서가 location인 경우 순서 반환 Note - 이 문제의 경우 탐색이 끝난 후 다음 index로 넘어갈 때 자동으로 이전 index의 문서가 마지막 프린트 우선순위가 되므로 별도로 문서의 우선순위를 저장할 필요가 없다고..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 모든 경우의 수를 탐색해야하는 문제이다보니 재귀함수를 선언하여 DFS로 해결했다. - int[] numbers를 탐색하며 마지막 인덱스까지 각 idx의 숫자를 더하거나 뺌 - idx가 마지막인 경우, sum을 target과 비교하여 일치하면 경우의 수 1을, 일치하지 않으면 0을 반환함 - 반환할 때마다 경우의 수가 더해져 최초 호출된 메서드는 전체 경우의 수를 반환함 Note - 멤버 변수(lastIdx, targetNum, targetNums)는 메서드를 간단하게 작성하고 싶어 사용했다. - 간단한 문제인..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 제시된 용어와 그래프에 잠깐 당황하긴 했으나 이해하고보니 구간별 면적을 구하여 더하면 해결할 수 있는 문제였다. 로직 설명 - 숫자 k에 대한 우박수열을 구하여 ArrayList에 저장함 (구간별 그래프의 높이) - 제시된 x좌표 유효 여부 판별 후 예외처리 - 제시된 x좌표들을 기준으로 구간별 면적 산출 후 더해주기 (사다리꼴: (윗변 + 아랫변) * 높이 / 2) 작성 코드 import java.util.*; class Solution { public double[] solution(int k,..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 노가다 이외의 방법으로 풀어보려고 몇 번 두고 계속 봤던 문제인데, 결국 문제를 읽으며 예외처리를 하나씩 추가해나가는 방식으로 문제를 풀 수밖에 없었다. - 다트 던지기가 3라운드로 제한되어 있으니 숫자별로 자르는 동작 없이 한 번에 문자 한 개씩 읽어가며 문제를 해결하고자 함. 이를 위해 별도의 int[] arr, idx를 선언하여 사용 - 숫자를 읽어올 때마다 직전 점수를 int[] arr에 저장함 - 현재 문자가 숫자인데 다음 문자가 '0'일 경우 숫자 10으로 판단, 10으로 저장 후 인덱스 두 번 증..