전체 글
-
[프로그래머스 / JAVA] 기지국 설치 (정답 코드)코딩/코테준비(JAVA) 2025. 3. 26. 11:16
막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록하고 있다.미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패하거나 성공했는지 살펴보는 용도로도 적합할 것 같다.)최근에는 문제 풀이량을 늘리느라, 블로그에 글을 작성하지 못했다.그런데 이 문제는 기록해 두면 좋을 것 같아서 올린다.이 문제의 제약 조건 중에서 나를 멈칫하게 했던 건 아래의 N의 범위이다. N : 200,000,000(2억) 이하의 자연수 그래서 이걸 보고 처음 들었던 생각은, "이 인덱스를 전부 순회하게 되면 시간초과가 발생하겠구나" 였다.그래서 순회는 stations의 정보만을 이용해 진행하자고 생각하고 접근했다. 처음에는 아래의 코드에 ArrayList의 list를 두고, 각 station..
-
[프로그래머스 / JAVA] 신고 결과 받기 (정답 풀이)코딩/코테준비(JAVA) 2025. 2. 19. 21:16
막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록하고 있다.미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패하거나 성공했는지 살펴보는 용도로도 적합할 것 같다.)최근에 내가 풀어서 맞춘 문제 중에 가장 오래 풀었다고 생각한다.2트만에 성공했다.이번에 특히 크게 느꼈던 점은 아래와 같다."복잡한 문제는 먼저 어떤 방법으로 풀어 나갈 것인지에 대한 설계를 종이 같은데에 간단히 메모를 해 놓자."처음에는 그냥 코드부터 짜기 시작했었는데, 도저히 머리속에서 정리가 되지 않아 계속 멈추게 되었다.두 번째는 아래와 같이 먼저 노트에 메모를 해놓고 시작했다. 그랬더니 내 진행상황에 대한 감도 잡히고 훨씬 수월하게 문제를 풀 수 있었다. import java.util.H..
-
[프로그래머스 / JAVA] 카드 뭉치 (정답 풀이)코딩/코테준비(JAVA) 2025. 2. 12. 23:22
막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록하고 있다.미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패하거나 성공했는지 살펴보는 용도로도 적합할 것 같다.)goal의 길이 ≤ cards1의 길이 + cards2의 길이라는 점에 주의. (이거 생각 안 하고 풀면 정확성 88% 뜸)이 주석을 새겨들을 필요가 있다.나는 이 조건을 제대로 안 읽고 풀었다가, 두 번 다 정확성 88%가 떴었다.goal을 다 탐색했을 때 카드뭉치에 카드가 남아있을 수 있다는 점을 염두하자. 나는 그냥 goal을 주인공으로 두고 얘를 순회하면서, cards1과 cards2의 앞부분(index 0)부터 검사해 주었다.그러다가 같은 문자열이 나오면 해당 카드뭉치의 index를 1 증..
-
[프로그래머스 / JAVA] 기능개발 (정답풀이)코딩/코테준비(JAVA) 2025. 2. 12. 22:38
막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록하고 있다.미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패하거나 성공했는지 살펴보는 용도로도 적합할 것 같다.)작업 진도와 작업 속도(하루당)가 주어지면 며칠 만에 해당 작업을 끝낼 수 있는지 구할 수 있다.나는 아래와 같이 삼항 연산자(조건? 조건이 참이면 실행: 조건이 참이 아니면 실행)를 사용해서 구현했다.Math.ceil() 메서드로 올림 연산을 이용해 풀 수도 있다. 나는 몇일만에 작업을 끝낼 수 있는지에 대한 정보들을 큐에 넣고, 배포 가능일의 최댓값을 담는 변수를 설정해 두었다.최댓값이 갱신되기 전까지는 작업들을 쌓아두다가(cnt를 증가시키기), 최댓값이 갱신될 때 cnt를 ArrayList에 ..
-
[프로그래머스 / JAVA] 크레인 인형뽑기 게임 (정답 풀이)코딩/코테준비(JAVA) 2025. 2. 6. 20:00
자바 공부와 코딩테스트 준비를 병행할 겸 자바로 코테 준비를 며칠 전 시작했다.막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록해 두려고 한다. 그냥 미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패하거나 성공했는지 살펴보는 용도로도 적합할 것 같다.) 구현 아이디어는 쉽게 떠올릴 수 있으나, 조건에 따른 예외 처리가 중요한 문제였다. 바구니가 비었을 때와 차 있을 때를 구분해줘야 하고, 바구니 맨 위에 올라가 있는 인형이 뽑힌 인형과 서로 같은지 다른 지도 구분해줘야 한다. board의 각 열을 스택으로 만들어 board를 stack의 배열로 바꾸어서 푸는 방법도 존재하나, 나는 그냥 board 배열의 꼭대기 행부터 아래로 내려오면서 검사하는 방식으로 구..
-
[프로그래머스 / JAVA] 주식 가격 (정답 풀이)코딩/코테준비(JAVA) 2025. 2. 2. 01:01
자바 공부와 코딩테스트 준비를 병행할 겸 자바로 코테 준비를 며칠 전 시작했다.막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록해 두려고 한다. 그냥 미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패하거나 성공했는지 살펴보는 용도로도 적합할 것 같다.) 이 문제도 처음 봤을 때, 풀이를 떠올리지 못해 설명을 참고했다.제약 조건인 prices의 길이가 최대 100,000이라 O(N^2)으로 구현(이중 for 문)하면 안 된다는 생각은 할 수 있었다. 처음 내가 스스로 구현했던 방법은 앞(오른쪽)이 아니라 뒤(왼쪽)에서부터 순회하는 방식이었다. 현재 순회하고 있는 인덱스의 주가가 바로 오른쪽에 있는 인덱스(바로 이전에 순회)의 값보다 크면, 즉, 주가가 낮아진..
-
[프로그래머스 / JAVA] 짝지어 제거하기 (정답 코드)코딩/코테준비(JAVA) 2025. 2. 1. 21:04
자바 공부와 코딩테스트 준비를 병행할 겸 자바로 코테 준비를 며칠 전 시작했다.막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록해 두려고 한다. 그냥 미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 성공하거나 실패했는지 살펴보는 용도로도 적합할 것 같다.) 이 문제는 아이디어가 바로 떠오르지 않아, 접근법을 참고해서 코드를 작성했다.처음에 내가 이 문제를 마주했을 때는, 인덱스 0부터 문자열의 끝까지 순회하면서 문자열을 자르고 붙이는 방식으로 해결해야 할 것 같다는 생각이 들었다.그런데 제약 조건에서 나와있듯이, 문자열의 길이가 1,000,000 이하의 자연수로, 조금만 복잡하게 구현하면 바로 시간 초과가 떠버린다.이 정도의 제약 조건이면, O(N)의 알고리즘..
-
[프로그래머스 / JAVA] 올바른 괄호 (정답 코드)코딩/코테준비(JAVA) 2025. 1. 31. 22:19
자바 공부와 코딩테스트 준비를 병행할 겸 자바로 코테 준비를 며칠 전 시작했다.막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록해 두려고 한다. 그냥 미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패하거나 성공했는지 살펴보는 용도로도 적합할 것 같다.) 이 문제는 "Stack 자료구조" 하면 맨 처음 마주하게 되는 대표적인 문제다.괄호문자열을 왼쪽부터 순회한다고 할 때, 닫힌 괄호(')')가 나오면 그에 맞는 짝은, 이전까지 순회했던 열린 괄호('(')중 제일 최근에 등장한 열린 괄호이다.나는 열린 괄호들을 스택에 쌓아두고, 닫힌 괄호가 나타날 때마다 스택에서 뽑아냈다. 정상적으로 짝지어진 문자열이라면, 전부 순회했을때 스택이 텅 비어있어야 한다.만약 중간..