Java(160)
-
[Programmers] N개의 최소공배수
https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 간단한 최소공배수를 구하는 문제이다. for 문을 돌면서 최소공배수를 갱신해나가면 된다. 코드 class Solution { public int solution(int[] arr) { int result = arr[0]; for (int i = 1; i < arr.length; i++) { result = lcm(result, arr[i]); } return result; } publi..
2023.08.08 -
[Programmers] 점프와 순간 이동
https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 문제가 쓸데없이 긴데 핵심은 간단하다. 점프를 최소화하여 목표 지점까지 도착하는 것이다. 이를 달리 말하면 순간이동을 최대화하라는 말이다. 순간이동은 현재까지 온 거리 * 2 만큼 이동한다. 따라서 목표 지점까지 점프를 최소화하여 최단으로 가는 거리는 목표 거리를 2로 계속 나누면 되는 것이다. 그러다 만약 홀수가 나오면 한 칸 점프하면 된다. 코드 public class Solutio..
2023.08.08 -
[Programmers] 예상 대진표
https://school.programmers.co.kr/learn/courses/30/lessons/12985 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 토너먼트 대진표가 주어질 때 a와 b가 만나는 라운드를 구해야 한다. 2의 n승만큼 인원이 주어지므로 부전승은 없다. 처음 문제를 보고 이진 트리 구조가 생각나서 트리를 활용해 부모 노드가 같은 경우를 찾으려고 했으나 너무 과한 것 같다고 생각했다. 그래서 n을 2로 나누어 줄여나가는 방식으로 해결했다. 처음엔 재귀로 했더니 런타임 오류(아마 스택오버플로우로 추정된다)가 절반 가까이 발..
2023.08.08 -
[Programmers] 영어 끝말잇기
https://school.programmers.co.kr/learn/courses/30/lessons/12981 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 Set을 활용한 간단한 구현 문제이다. 코드 import java.util.Set; import java.util.HashSet; class Solution { public int[] solution(int n, String[] words) { int[] answer = {0, 0}; Set set = new HashSet(); set.add(words[0]); for (int orde..
2023.08.08 -
[Programmers] 숫자의 표현
https://school.programmers.co.kr/learn/courses/30/lessons/12924 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 10000 이하의 자연수 n이 주어진다. 연속된 자연수의 합으로 n을 만들 수 있는 경우의 수를 구해야 한다. 간단하게 푸는 방법은 이중 for 문으로 해결하는 방법이다. 해결 후 다른 사람의 풀이를 보니 정수론에서 정리된 법칙을 이용해 for 문 한 번만으로 해결한 코드도 있었다. 주어진 자연수를 연속된 자연수의 합으로 표현하는 방법의 수는 주어진 수의 홀수 약수의 개수와 같다라는 정..
2023.08.07 -
[Programmers] 이진 변환 반복하기
https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 이진수인 문자열이 주어진다. 이 문자열의 0을 모두 제거하여 1로만 구성된 문자열로 만든다. 그리고 이 문자열의 길이를 이진수로 바꾼다. 문자열이 1이 될 때까지 이를 반복한다. 이 과정에서 제거된 0의 개수와 변환 횟수를 구하여 반환하면 된다. 코드 1 - 이진 변환 직접 하기 class Solution { private int count = 0; private int zeros = ..
2023.08.07