실력 향상 일지/프로그래머스 28

[Java] 콜라츠 추측

문제 설명 및 입출력 예시 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 주어진 수가 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야 하는지 반환하는 함수, solution을 완성해 주세요. 단, 주어진 수가 1인 경우에는 0을, 작업을 500번 반복할 때까지 1이 되지 않는다면 -1을 반환해 주세요. 제..

[Java] x만큼 간격이 있는 n개의 숫자

문제 설명 및 입출력 예시 함수 solution은 정수 x와 자연수 n을 입력받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성하세요. 제한조건 - x는 -10000000 이상, 10000000 이하인 정수입니다. - n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] 코드 & 풀이과정 class Solution { public long[] solution(int x, int n) { long[] answer = new long[n]; for (long i = 0; i < n; i++) { answer[(int)..

[Java] 문자열을 정수로 바꾸기

문제 자체가 상당히 문제가 있다 (ㅋㅋ) 여태까지 불닭 맥이다가 신라면 맥이면서 맵지? 이러는 느낌?? 문제 설명 및 입출력 예시 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 제한 조건 - s의 길이는 1 이상 5 이하입니다. - s의 맨 앞에는 부호( +, - )가 올 수 있습니다. - s는 부호와 숫자로만 이루어져 있습니다. - s는 "0"으로는 시작하지 않습니다. 입출력 예 예를 들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호( +, - )와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다. 코드 & 풀이과정 class Solution { public int solution(Strin..

[Java] 정수 내림차순으로 배치하기

(현재까지는) 5일 넘게걸린 유일한 문제 문제 설명 및 입출력 예시 함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를들어 n이 118372면 873211을 리턴하면 됩니다. 제한조건 - n은 1이상 8000000000 이하인 자연수 입출력 예시 - n return 118372 873211 코드 & 풀이과정 먼저 n을 한글자 한글자 배열에 넣어줄 필요성을 느꼈다. 왜냐하면 정수인 상태로는 정렬을 할 수 없다고 생각했기 때문이다. 그리고 포문을 돌려 글자 하나가 자기보다 큰게 자기보다 앞에(큰 자릿수에) 있을 시 서로 자리를 바꿔주는 코드를 작성했다. 그 후 또다시 포문을 이용해 answer에 num[0] 부터 num[..