전체 글
-
[프로그래머스 / 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 자료구조" 하면 맨 처음 마주하게 되는 대표적인 문제다.괄호문자열을 왼쪽부터 순회한다고 할 때, 닫힌 괄호(')')가 나오면 그에 맞는 짝은, 이전까지 순회했던 열린 괄호('(')중 제일 최근에 등장한 열린 괄호이다.나는 열린 괄호들을 스택에 쌓아두고, 닫힌 괄호가 나타날 때마다 스택에서 뽑아냈다. 정상적으로 짝지어진 문자열이라면, 전부 순회했을때 스택이 텅 비어있어야 한다.만약 중간..
-
[프로그래머스 / JAVA] 방문 길이 (잘못된 풀이)코딩/코테준비(JAVA) 2025. 1. 31. 13:31
자바 공부와 코딩테스트 준비를 병행할 겸 자바로 코테 준비를 며칠 전 시작했다.막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록해 두려고 한다. 정답 코드가 아니다. 그냥 미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패했는지 살펴보는 용도로도 적합할 것 같다.) 이번 문제는 거쳐간 길의 길이를 구하는 문제였다.동일한 길을 여러 번 거쳐가더라도 한 번만 카운트하도록 구현하려면, Set 자료구조를 써야 한다는 생각이 제일 먼저 떠올랐다.내가 실수한 부분은 두가지다.첫 번째로는, 시작 좌표와 도착 좌표를 HashSet안에 집어넣었어야 했는데, x좌표가 바뀌었을 때는 그냥 시작 x좌표, 도착 x좌표만 집어넣었다. 이렇게 x에 대해서만 집어넣으면 y에 대한 정보..
-
[프로그래머스 / JAVA] 실패율 (중간에 막힘)코딩/코테준비(JAVA) 2025. 1. 28. 02:01
자바 공부와 코딩테스트 준비를 병행할 겸 자바로 코테 준비를 며칠 전 시작했다.막히거나 틀린 부분이 있더라도, 그냥 그대로 내가 스스로 작성한 부분들을 기록해 두려고 한다. 정답 코드가 아니다. 그냥 미래의 복기용으로 나를 위해 적어둔 기록이다.(이 사람은 어떻게 실패했는지 살펴보는 용도로도 적합할 것 같다.) 이번 코드는 (실패율 기준 내림차순 + 동일 실패율의 경우 작은번호 우선) 이 부분을 구현하지 못해 다 작성하지 못했다.HashMap을 써서 key를 스테이지 번호, value를 실패율로 두고 value를 기준으로 내림차순 정렬을 먼저 하고, key를 기준으로는 오름차순 정렬을 하면 어떨까..라는 생각을 해보다가, 'hashMap은 근데 파이썬의 dictionary처럼 순서라는 게 없지 않을까'..