본문 바로가기

JAVA/Coding Test Study149

[Lv.2] 점 찍기 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 첫 접근방식은 다음과 같았다. x축을 0으로 놓고 가능한 y 좌표값을 구한다. y축을 0으로 놓고 가능한 x 좌표값을 구한다. x, y축을 이동시켜가며 서로의 좌표값을 구한다. 구한 좌표값들은 중복되지 않도록 set에 저장한다. 하지만 구현하다보니 뭔가 잘못되었다는 것을 직감했다... 내가 짠 코드대로라면 x가 0일 때, y가 0일때, x가 k일 때, y가 k일 때의 경우만 구해지는 것이다. k의 배수이고 d보다 작거나 같을 때를 구해야 하는 것인데...! 결국 오늘도 구글링🥹 처음 참고한 글은 요기.. 2024. 4. 5.
[Lv.2] 시소 짝꿍 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 처음 접근했던 방법은 다음과 같다. 조합을 사용해서 가능한 쌍들을 전부 list에 저장한다. {100, 180}, {100, 360}, {100, 100}, {100, 270}, {180, 360}, {180, 100}, {180, 270}, {360, 100}, {360, 270}, {100, 270} check 함수를 사용하여 균형 여부를 확인한다. 둘이 몸무게가 같다면 return true 둘의 몸무게가 {2, 3}, {2, 4}, {3, 4}, {3, 2}, {4, 2}, {4, 3} 거리 배.. 2024. 4. 3.
[Lv.3] 불량 사용자 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 머리로는 이해가 되는데 어떻게 구현해야할지 감이 안 잡혔던 문제... 찾아보니 생각보다 쉽게 풀 수 있어서 허탈했다ㅜㅅㅜ 이번에 참고한 블로그는 요기 [프로그래머스 / Level3] 불량 사용자 (Java) 문제 보기 사용한 것 불량 사용자 후보군 리스트의 경우의 수를 구하기 위한 백트래킹 풀이 방법 불량 아이디 별로 조건에 만족하는 아이디를 HashSet에 넣어준다. 이 때 서로 같은 메모리를 가리 velog.io dfs(백트래킹) 사용 불량 아이디 별로 조건에 만족하는 아이디를 HashSet에 넣.. 2024. 4. 2.
[Lv.2] 소수 찾기 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 어제 풀었던 소수 찾기 Lv.1 문제와 유사하다고 생각하고 자신만만하게 풀이 시작... 과 동시에 실패! [Lv.1] 소수 찾기 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하 newbie-in-softengineering.tistory.com 순열로 접근했지만 이 문제는 dfs 문제였던 것... 항상 완전탐색 문제만 보면 순열인가?.. 2024. 4. 2.
[Lv.1] 키패드 누르기 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 처음엔 문제 내용 중 상하좌우 4가지 방향으로 이동 가능하고 이동하는 한 칸의 거리는 1이라는 점을 보고 BFS 문제인가? 생각하고 접근하였다. 그치만 도저히 BFS로 안 풀리는데 싶어서 접근 방법을 바꿔보았다. 아래 코드가 두번째 풀이이다. class Solution { static int[][] numArr = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}, {-1, 0, -2}}; int[] dX = {1, -1, 0, 0}; int[] dY = {0, 0, 1, -1}; publi.. 2024. 4. 2.
[Lv.1] 모의고사 : Java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이해하기 일단 각각의 찍는 방식을 미리 만들어두고, answer와 비교해야겠다고 생각하였다. 예시에서는 answer가 5자리밖에 없어서 비교하기 쉽지만, 5자리가 넘어가게 되면 찍는 방식의 처음으로 되돌아와야 한다는 점이 고민되었다. 그래서 처음에는 찍는 방식 배열의 인덱스를 answers.length로 나머지 계산하도록 만들었지만 요 방법이 틀렸다는 것을 나중에 알게 되었다. 처음 풀었던 코드는 아래와 같았다. import java.util.*; class Solution { int[] no1 = {1, 2.. 2024. 4. 1.