본문 바로가기

JAVA/Coding Test Study117

[Lv.1] 프로그래머스 - 공원 산책 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기처음엔 구현만 하면 되겠다고 생각했는데, 은근 헷갈렸다.첫번째 풀이를 하고 제출했는데 줄줄이 실패가 떴다... 이유는 'X'를 마주쳤을 때의 구현을 빼먹어서...! 두번째 풀이는 x, y 방향을 반대로 설정해서 실패했다. 전부 수정해서 제출했더니 겨우 성공...ㅎx, y를 아래와 같이 고정해놓고 풀었더니 해결됐다.  문제풀이// 첫번째 풀이 -> 실패 (X 구현을 안 함)// 두번째 풀이 -> x, y 방향 반대로class Solution { public int[] solution(String[].. 2024. 5. 15.
[Lv.1] 프로그래머스 - 신고 결과 받기 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기처음 생각했던 프로세스는 다음과 같다.report의 중복을 없애자.map에 report 당한 사람의 이름과 횟수를 저장하자.id_list 순서대로, report 했더니 정지당한 사람의 수를 반환하자.import java.util.*;import java.util.Map.*;class Solution { public int[] solution(String[] id_list, String[] report, int k) { int[] answer = new int[id_list.length.. 2024. 5. 15.
[Lv.1] 프로그래머스 - 개인정보 수집 유효기간 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기처음 접근했던 방식은 다음과 같다.List에 저장해두고 int 배열로 변환해서 반환해야지today를 기준으로 terms의 개월수만큼 뺀 날짜를 계산해서 따로 String 배열에 저장해야지e.g. today = "2022.05.19", terms = {"A 6", "B 12", "C 3"}expired[] = {"2021.11.18", "2021.05.18", "2022.02.18"}여기까지 구현했는데 문제가 생겼다. terms의 "A", "B", "C"를 구분해서 비교해줘야하는데, 나는 그냥 Strin.. 2024. 5. 13.
[Lv.0] 프로그래머스 - 진료순서 정하기 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기처음에는 문제가 잘 이해돼지 않았는데, emergency가 응급한 정도를 나타낸다고 생각하니 이해가 됐다.예를 들어 첫번째 예시인 [3, 76, 24] 중 가장 응급한 76이 1번, 그 다음으로 24가 2번, 3이 3번인 식이다.  문제풀이import java.util.*;class Solution { public int[] solution(int[] emergency) { int[] answer = new int[emergency.length]; Arrays.fill(a.. 2024. 5. 10.
[Lv.0] 프로그래머스 - 정수를 나선형으로 배치하기 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기비슷한 문제를 그래도 좀 풀었다고 생각했는데 항상 바로바로 떠오르지가 않는다.넣어줄 값인 value (초기값 1로 시작)행과 열 row, col방향 direction (초기값 0) value가 n * n일 때까지 while문 반복answer[row][col]에 value 넣고 value += 1방향이 0이면 (오른쪽으로 이동)col이 n - 1이거나 현 위치의 오른쪽에 0이 아닌 다른 값이 들어있는 경우방향 전환 : 1row++아니라면 col++방향이 1이면 (아래쪽으로 이동)row가 n - 1이거나 .. 2024. 5. 10.
[Lv.0] 프로그래머스 - 구슬을 나누는 경우의 수 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기 문제 맨 밑에 이런 힌트가 있어서 팩토리얼을 구현해서 풀어야지! 했다가 실패했다.왠지 모르겠어서 조합으로 풀려다가 또 실패...질문하기 탭을 봤더니 더 쉬운 방법이 있어서 기록해둔다. 만약 공이 30개 있고, 그 중 5개를 뽑는다고 생각해보자.위의 힌트에 적용시키면 30! / (25! x 5!) 이다.다시 정리하면 (30 x 29 x 28 x 27 x 26) / (5 x 4 x 3 x 2 x 1) 이 된다. 이걸 가지고 다시 풀이하였다.  문제풀이import java.util.*;class Solut.. 2024. 5. 10.