본문 바로가기

코딩 테스트/[JAVA] programmers 코딩 테스트 연습64

[Programmers/JAVA] 콜라츠 추측 / 프로그래머스 코딩 테스트 연습 콜라츠 추측 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예시 num return 6 8 16 4 626331 -1 코드 해석 및 전체 코드 알고리즘 1. 반환값 변수 선언 2. long 타입 변수 n을 num으로 초기화 선언 3. 반환값이 500일때까지 반복 4. n이 1일 때 answer 반환 5. n이 짝수인지 홀수인지 판단하여 계산 6. answer++ 7. while문에서 반환 못할 시.. 2021. 6. 12.
[Programmers/JAVA] 짝수와 홀수 / 프로그래머스 코딩 테스트 연습 짝수와 홀수 문제 설명 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. 예시 n return 3 "Odd" 4 "Even" 코드 해석 및 전체 코드 알고리즘 1. num을 2로 나누었을 때의 나머지가 0이면 Even 반환, 아닐 시 Odd반환 class Solution { public String solution(int num) { String answer = ""; answer = num % 2 == 0 ? "Even" : "Odd"; return answer; } } github programmers 2021. 6. 11.
[Programmers/JAVA] 정수 제곱근 판별 / 프로그래머스 코딩 테스트 연습 정수 제곱근 판별 문제 설명 임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. 예시 n return 121 144 3 -1 코드 해석 및 전체 코드 타입과 형변환이 어려운 문제였다.... 너무 쉬워서 얕봤는데.... 엄청난 문제였다 👍👍🏻👍🏾 알고리즘 1 1. i²이 n보다 작거나 같을 동안 for문 반복 2. i²이 n과 같은지 판단 3. 같을 시 (i + 1)² 리턴 4. 같지 않고 i²이 더 크면 -1 리턴 1. i²이 n보다 작거나 같을 동안 for문 반복 !!!!! i를 int형으로 하니 계속 오류가 발생....해서 한참 고.. 2021. 6. 11.
[No.18] 자연수 뒤집어 배열로 만들기/ 프로그래머스 코딩 테스트 연습 JAVA 자연수 뒤집어 배열로 만들기 문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 예시 n return 12345 [5, 4, 3, 2, 1] 코드 해석 및 전체 코드 알고리즘 1. n의 길이 구하기 2. 길이만큼 배열 선언 3. n의 끝자리부터 인덱스 0부터 차례대로 넣기 1. n의 길이 구하기 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열을 만들기 위해 배열을 선언할 때 필요한 길이를 구해야한다. long 타입의 num을 n으로 초기화하고 길이를 나타낼 int 타입의 cnt를 선언한다. num이 0이 아닐 때까지 num을 10으로 나누면서 cnt를 증가시킨다. 12345 / 10 = 1234 1234.. 2021. 6. 10.
[No.17] 자릿수 더하기 / 프로그래머스 코딩 테스트 연습 JAVA 자릿수 더하기 문제 설명 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를 들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. 예시 n return 123 6 987 24 코드 해석 및 전체 코드 알고리즘 1. num(= n)이 0이 아닐 때까지 while문 반복2. answer에 num을 10으로 나누었을 때의 나머지 값 넣기3. num / 10 1. num(= n)이 0이 아닐 때까지 while문 반복 n으로 초기화한 int 타입의 num 선언하여 num을 계속 10으로 나누고 0이 되면 더 이상 나눌 10으로 나눌 수 없다는 것을 의미하므로 0이 아닐 때까지 반복한다. 2. answer에 num을 10으로 나.. 2021. 6. 10.
[No.16] 이상한 문자 만들기/ 프로그래머스 코딩 테스트 연습 JAVA Create Strange Characters 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백 문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 예시 s return "try hello world" "TrY HeLlO WoRlD" 코드 해석 및 전체 코드 알고리즘 1 1. StringBuilder로 반환 변수 선언 2. 홀/짝수 판단하기 위한 boolean 타입 변수 선언 3.. 2021. 6. 9.
[No.15] 약수의 합 / 프로그래머스 코딩 테스트 연습 JAVA 약수의 합 문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 예시 n return 12 28 5 6 코드 해석 및 전체 코드 알고리즘 1. 1 ~ n까지 반복 2. 약수일 경우 더하기 for문을 1 ~ n까지 반복한다. n을 i로 나누었을 때 0이라면 i는 n의 약수이므로 answer에 i를 더한다. 1 2 3 4 5 5 % 1 = 0 5 % 2 = 1 5 % 3 = 2 5 % 4 = 1 5 % 5 = 0 + 1 + 5 5의 약수의 합은 6이다. class Solution { public int solution(int n) { int answer = 0; for(int i = 1; i 2021. 6. 9.
[No.14] 문자열을 정수로 바꾸기 / 프로그래머스 코딩 테스트 연습 JAVA 문자열을 정수로 바꾸기 문제 설명 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. 조건 s의 길이는 1 이상 5 이하입니다. s의 맨 앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져 있습니다. s는 "0"으로 시작하지 않습니다. 예시 s return "1234" 1234 "-1234" -1234 코드 해석 및 전체 코드 알고리즘 1. 부호 판단 2. 문자를 숫자로 변환 1. 부호 판단 부호를 판단하기 위해 boolean 타입의 sign 변수를 선언하여 초기값으로 true를 준다. sign이 true이면 +, false이면 - 를 의미한다. 2. 문자를 숫자로 변환 for문에서 s의 문자열 길이만큼 반복한다. char 타입의 ch에는 숫자로 변환하기.. 2021. 6. 8.
[No.13] 수박수박수박수박수? / 프로그래머스 코딩 테스트 연습 JAVA 수박수박수박수박수? 문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를 들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 예시 n return 3 "수박수" 4 "수박수박" 코드 해석 및 전체 코드 알고리즘 1. 문자열 길이만큼 for문을 돌린다. 2. i가 홀수일 땐 "수", 짝수일 땐 "박"을 문자열에 더한다. StringBuilder 클래스의 append 사용 StringBuilder a = new StringBuilder("Hello"); a.append(" World"); System.out.println(a); // Hello World StringBuilder answer Str.. 2021. 6. 8.