일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- bfs
- 도커
- 스타트업
- 이직
- dfs
- docker
- 백엔드
- 해결
- 구현
- Linux
- 구름LEVEL
- HTTP
- 배열
- 문자열
- 명령어
- Java
- 주니어
- 인텔리제이
- 자료구조
- 스프링부트
- spring
- 프로그래머스
- 개발자
- spring boot
- 해시맵
- HashMap
- 스프링 부트
- 코딩테스트
- 스프링
- IntelliJ
- Today
- Total
목록코딩테스트 (45)
마이의 개발 블로그
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 최초 접근방식 (93.3점, 통과못함) 큐는 단방향으로만 움직인다는 아이디어에 착안하여 큐 2개를 합쳐 하나의 배열로 만들고, 시작과 끝 인덱스 2개를 전진시키며 합산을 체크하는 방식으로 풀어보려고 했으나, 다 통과했는데 중간에 테스트케이스 2개를 끝끝내 통과하지 못했다. 예외처리를 해줘야할 부분이 있었던게 아닌가 싶은데 아쉽지만 이 접근 방식으로 답안을 완성하지는 못했다. 프로그래머스에서는 케이스를 공개하지 않는데 가끔은 이게 실제 프로그래밍 방식과 맞는 건지 의문이 들 때가 있다. class Solutio..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 예전에 풀어놨던 문제인데 뒤에 있는 큰 수 찾기 문제와 관련하여 이제서야 기록을 남긴다. 스택/큐 문제로 분류되어있으나 반복문으로 풀어냈다. 로직 설명 - 배열 prices[]를 탐색하며: 각 가격 prices[i]의 뒤에있는 가격들을 탐색하여 span을 증가시킴 - 주식 가격이 떨어지는 경우 탐색을 중단하고 answer[i]에 span을 저장함 Note - 스택으로 풀었어도 될 문제이나 구현으로 풀어내는게 더 직관적이라는 생각이 든다. class Solution { public int[] solu..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방식 이중 반복문으로 테케는 풀렸으나 당연히 시간초과에 걸렸고, 스택으로 풀어야 해결된다는 힌트를 보고 몇 날 며칠을 고민했던 문제다. 다른 사람들의 접근법을 보고난 후에도 로직을 이해하기 위해 노력해야했는데 막상 이해하고나니 너무나 간단한 문제였다. 이런 유형에서 스택을 사용하는 이유는 탐색 도중 구간별 변화를 감지했을 때에만 그 구간에서의 결과값이 도출되기 때문이다. 즉, 구간별 변화(뒤에 나보다 큰 수가 존재하는 것)가 일어나지 않으면 결과값을 도출할 수 없고(-1), 변화가 감지되었을 때에만 탐색..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 동적 계획법(Dynamic Programming, DP) 문제이다. 처음에 DFS로 테스트 케이스를 풀어내긴 했는데 인풋 최대값이 100,000이다보니 실제 채점에서는 전부 통과되지 않아 DP로 바꾸어 풀게되었다. DP는 '기억하며 풀기'로 보통 바꾸어 말하는데 반복되는 문제에 대한 최적의 결과를 단계별로 메모리에 저장하고 이를 활용하여 다음 단계의 결과를 구하는 방식으로 사용한다. 여기서는 땅따먹기의 각 단계별로 직전단계까지의 최대값을 저장(또는 land에 바로 더해주기)하는 방식으로 DP를 구현했다. - ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 배열을 하나씩 잘라가며 양쪽의 토핑 종류 개수를 (토핑개수 x) 비교하는 문제이다. - 형(older)은 HashMap으로, 동생(younger)은 HashSet으로 선언 - topping 배열을 한 바퀴 돌며 older한테 전부 넣어주기 : put(토핑번호, 개수); - topping 배열을 한 바퀴 돌며 1) 해당 토핑을 older에서 1개 빼기 (1개 뺀 후 0개인 경우 키값 제거 필요함. 키의 개수가 size()로 잡히기 때문) 2) 해당 토핑을 younger에 넣어주기 3) older와 younger..