본문 바로가기

JAVA/Coding Test Study151

[Lv.0] 프로그래머스 - 겹치는 선분의 길이 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기처음에는 lines를 앞에서부터 하나씩 가져온 후, 이를 나머지 lines과 비교하여 겹치는 영역을 더하도록 하였다.하지만 세번째 예시인 {{0, 5}, {3, 9}, {1, 10}}가 실패하였다.이 때의 풀이는 각각의 0번 인덱스를 기준으로 정렬한 후, 서로 겹치는 부분을 answer에 더해주었다. 생각해보니 문제를 잘못 이해한 것이었다.문제에서 요구한 것은 세 선분이 전부 겹친다면 위와 같이 셋의 겹치는 부분을 찾으라는 것이었다.위 그림을 보면 1부터 9까지는 점이 2개 이상이고, 그렇기에 결과가 .. 2024. 6. 21.
[Lv.0] 프로그래머스 - 연속된 수의 합 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기첫 숫자를 찾아서 num 개수만큼 담아야 할까? 그치만 첫 숫자는 어떻게 찾지? 라고 고민했지만 방법이 보이지 않았다... 참고한 블로그⬇️ 연속된 수의 합 - JAVA" data-og-description="문제 설명 연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solu" data-og-host="fall-in-dream.tistor.. 2024. 6. 21.
[프로그래머스] 코딩 입문 트레이닝 Lv.0 클리어! 2024. 6. 21.
[Lv.2] 프로그래머스 - 행렬 테두리 회전하기 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기matrix 배열을 만들어두고, queries를 하나씩 돌아가며 직접 배열을 회전시키려 하였다.처음 풀이했던 방법은 Queue를 하나 만들어서 해당 테두리의 숫자들을 저장시켜두고, 한 칸씩 옮겨서 Queue 값을 poll하여 넣어주는 것이었다. 1시간 동안 고민하면서 구현하고 테스트 코드까지 통과했길래 제출했더니 18.2점...  import java.util.*;class Solution { public int[] solution(int rows, int columns, int[][] queri.. 2024. 6. 19.
[Lv.0] 프로그래머스 - 특이한 정렬 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기numlist의 각 수와 n과의 거리를 계산하여 따로 int 배열에 저장하고, 이를 등수 매기듯 정렬하는 방법을 생각했지만 구현하지 못했다. 예시를 가지고 정리하면 왼쪽과 같다.거리를 따지는 것이니 n과의 차이를 절대값으로 나타냈다.만약 거리가 같다면 더 큰 수가 앞으로 오도록 한다.그렇기에 결과가 {4, 5, 3, 6, 2, 1}이 되어야 하는 것이다.   첫번째 인덱스를 가지고 비교해보자. 거리가 3인 1보다 거리가 먼 값은 없으니 그대로 {1, 2, 3, 4, 5, 6}이다. 두번째 인덱스를 가지.. 2024. 6. 19.
[Lv.0] 프로그래머스 - 유한소수 판별하기 : Java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr   이해하기처음 생각했던 로직은 다음과 같다.a와 b의 최대공약수를 찾는다.a와 b를 최대공약수로 각각 나누어준다.b의 소인수가 2와 5만 존재하는지 판단한다.class Solution { public int solution(int a, int b) { int gcd = gcd(a, b); a /= gcd; b /= gcd; if (b % 2 == 0 || b % 5 == 0) { return 1; .. 2024. 6. 19.