본문 바로가기
728x90
반응형

프로그래머스138

JAVA 프로그래머스 [콜라츠 추측] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 콜라츠 추측 https://school.programmers.co.kr/learn/courses/30/lessons/12943 해결 과정 우선 num 가 1이 될 때 return 0을 바로 해주는 조건문을 먼저 삽입한다. 다음 본격적으로 while 반복문 루프를 돌면서 진행해보자. 먼저 풀이 횟수인 answer이 500 이상이되면 0을 바로 return 해주는 조건문을 만들고, 다음으로 짝수와 홀수를 구분해주며 각 공식에 따라 num를 계산해준다. 이 조건문이 끝나면 answer++을 하여 풀이 횟수를 하나씩 높여주고, 여기서 만약 num가 1이 되어 콜라츠 추측을 완성한다면 그 때의 answer 값을 return 해주면 된다. 하지만 예시로 나온 62.. 2023. 8. 2.
JAVA 프로그래머스 [두 정수 사이의 합] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 두 정수 사이의 합 https://school.programmers.co.kr/learn/courses/30/lessons/12912 해결 과정 풀이는 생각보다 간단하다. 우선 a==b일때는 단순히 a의 값(b 동일) 을 return 해주면 되는데, answer을 long형으로만 변환을 해주면 된다. 다음으로 a>b 인 경우를 생각해보자. a부터 b까지 하나씩 -1을 해주면서 answer에 i값을 누적하여 더해주면된다. 그리고 나머지의 경우에는 a부터 b까지 하나씩 +1을 해주면서 answer에 i값을 누적하여 더해주면된다. 소스 코드 class Solution { public long solution(int a, int b) { long answer .. 2023. 8. 2.
JAVA 프로그래머스 [하샤드 수] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 하샤드 수 https://school.programmers.co.kr/learn/courses/30/lessons/12947 해결 과정 이 문제를 보고, 자릿수 더하기에 사용했던 풀이를 사용해보기로 했다. https://tripleup.tistory.com/142 JAVA 프로그래머스 [자릿수 더하기] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 자릿수 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/120906 해결 과정 먼저 숫자를 문자열로 바꾼 후 split을 이용하여 문자열 배열 arra tripleup.tistory.com 먼저 answer을 false로 해놓고 .. 2023. 8. 2.
JAVA 프로그래머스 [정수 내림차순으로 배치하기] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 정수 내림차순으로 배치하기 https://school.programmers.co.kr/learn/courses/30/lessons/12933 해결 과정 이 문제를 보고 생각한 루트는 1. 정수 n을 문자열로 바꾼다 2. 문자열 각 문자를 정수로 변환하여 정수 배열을 만든다 3. 배열을 sort한다 4. 1의 자리부터 answer에 자릿수를 계산하여 더해준다 이렇게 였다. 1. 우선 정수 n을 문자열 s 로 바꿔준다. String s = String.valueOf(n); 2. 다음 정수 배열 list를 만들어 문자열 길이만큼 크기를 정해주고, 반복문을 이용하여 list에 정수형으로 변환한 값을 넣어준다. for (int i=0; i 2023. 8. 1.
JAVA 프로그래머스 [문자열을 정수로 바꾸기] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 문자열을 정수로 바꾸기 https://school.programmers.co.kr/learn/courses/30/lessons/12925 해결 과정 우선 이 문제의 경우 3가지로 조건을 나누어야 한다. 1. 맨앞이 부호 "-" 일 때 2. 맨앞이 부호 "+" 일 때 3. 맨앞에 부호가 없을 때 (숫자로 시작할 때) if (s.charAt(0) == '-') { } else if (s.charAt(0) == '+') { } else { } 위와 같이 조건문에서는 s.charAt(0) 을 이용해 준다. 1. 맨앞이 부호 "-" 일 때 for (int i=1; i 마찬가지로 1번과 같이 수행하고, 대신 -1을 곱하는 부분이 필요없다. 3. 맨앞에 부호가 없을.. 2023. 8. 1.
JAVA 프로그래머스 [정수 제곱근 판별] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 정수 제곱근 판별 https://school.programmers.co.kr/learn/courses/30/lessons/12934 해결 과정 먼저, 이 문제는 제곱과 제곱근의 관한 문제이므로 Math.sqrt(n) 과 Math.pow(a,b)를 적절하게 사용해야 한다. 먼저 n의 제곱근이라고 할 수 있는 x를 double형으로 선언해준다. 그리고 조건문을 이용하여 이 제곱근을 1으로 나누었을 때 나머지가 0이 된다면 소수점이 없는 것이므로 n은 어떤 수 x의 제곱이 맞다. 그러므로 Math.pow(x+1,2)를 long형으로 형변환하여 answer에 넣어준다. 아닐경우에는 answer = -1을 해주고 answer을 return 해주면 된다. 소스 코.. 2023. 8. 1.
JAVA 프로그래머스 [문자열 내 p와 y의 개수] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 문자열 내 p와 y의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/12916 해결 과정 우선 answer값이 true로 초기화되어 있으므로, answer이 false가 되는 경우에 집중을 하면 된다. 먼저 p와 y의 개수를 새기 위한 변수 a,b를 만들어주고, 반복문과 조건문을 이용하여 a++, b++을 처리해준다. 이때 대소문자는 구분하지 않는다고 하여 필자는 or조건을 이용하여 소문자일 경우와 대문자일 경우를 같이 처리하였다. 그렇게 해서 a와 b가 같지 않을 때, answer = false라는 조건을 걸어준다면 문제가 모두 해결 된다. 소스 코드 class Solution { bool.. 2023. 8. 1.
JAVA 프로그래머스 [자연수 뒤집어 배열로 만들기] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 자연수 뒤집어 배열로 만들기 https://school.programmers.co.kr/learn/courses/30/lessons/12932 해결 과정 먼저 자연수 자릿수를 알아야 배열 answer의 길이를 설정할 수 있다. 자연수의 자릿수는 (int)(Math.log10(n)+1) 로 알 수 있다. 그렇게 answer배열의 길이를 설정해주고, 인덱스의 역할을 해줄 int k를 선언한다. 그리고 answer의 길이만큼 반복문을 돌면서 answer[k] 에 n을 10으로 나눈 나머지를 int형으로 형변환해준다. n은 10을 나눈수로 다시 업데이트 해주고, k++를 해주면서 answer배열에 값을 하나씩 넣어주면 된다. 소스 코드 class Solutio.. 2023. 7. 31.
JAVA 프로그래머스 [나머지가 1이 되는 수 찾기] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 월간 코드 챌린지 시즌3 ->나머지가 1이 되는 수 찾기 hthttps://school.programmers.co.kr/learn/courses/30/lessons/87389 해결 과정 먼저 제일 작은 x를 찾아야 하므로, 반복문에서 n부터 0으로 거꾸로 내려온다. i-- 로 진행하면서, 조건에 맞을 때, answer에 i를 계속 업데이트 시켜준다. 최종적으로 나온 i의 값이 제일 작은 x가 된다. 소스 코드 class Solution { public int solution(int n) { int answer = 0; for (int i=n ; i>0; i--) { if (n%i == 1) { answer = i; } } return answer; } } 2023. 7. 31.
JAVA 프로그래머스 [x만큼 간격이 있는 n개의 숫자] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> x만큼 간격이 있는 n개의 숫자 https://school.programmers.co.kr/learn/courses/30/lessons/12954 해결 과정 먼저 배열 answer 의 길이를 n으로 지정해준다. 그리고 반복문을 돌면서 answer[i]에 x * (i+1)을 넣어주면 된다. 처음에는 단순히 answer[i] = x * (i+1); 로 진행하였는데 테스트 13,14에서 자꾸 실패가 나왔다. 이유를 모르겠어 질문게시판을 통해 접근해보니, 형변환 문제 였다. x의 경우 int형 매개변수 이기 때문에 long 배열 때문에, long으로의 형변환이 필요하다. 그래서 x앞에 (long)을 붙혀서 answer[i] = (long) x * (i+1) 으.. 2023. 7. 31.
JAVA 프로그래머스 [짝수와 홀수] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 짝수와 홀수 https://school.programmers.co.kr/learn/courses/30/lessons/12937 해결 과정 (생략) 소스 코드 class Solution { public String solution(int num) { String answer = ""; if (num % 2 == 0) { answer = "Even"; } else { answer = "Odd"; } return answer; } } 2023. 7. 31.
JAVA 프로그래머스 [자릿수 더하기] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 자릿수 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/12931 해결 과정 각 자릿수의 합을 더해야 하므로 일단 while 반복문을 사용한다. n을 10으로 나누었을 때 나머지가 각 자릿수의 숫자가 되는데, 위 과정을 한번 진행할때마다 n을 10으로 나눠서 몫을 구해 반복하면 된다. 그렇게 되면, 만약 n이 123일 때 n%10 은 3 (이때, n =123) n/10 은 12 n%10 은 2 (이때 n=12); n/10 은 1 n%10 은 1 (이때 n=1) 이렇게 진행된다. 고로 이 값들을 모두 answer에 더하여 누적시킨 값을 return 해주면 된다. 소스 코드 public clas.. 2023. 7. 30.
JAVA 프로그래머스 [약수의 합] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 약수의 합 https://school.programmers.co.kr/learn/courses/30/lessons/12928 해결 과정 약수란 어떠한 수로 나누어 떨어지는 수를 말하므로, 나머지가 0이 되는 수라고 생각할 수 있다. 반복문에서 i를 1에서 n까지 돌리면서, n을 i로 나누었을 때 나머지가 0이 되는 조건에 만족한다면 answer에 i값을 누적시켜준다. 그리고 answer을 return 해준다. 소스 코드 class Solution { public int solution(int n) { int answer = 0; for (int i=1; i 2023. 7. 30.
JAVA 프로그래머스 [평균 구하기] 자바 Lv.1 [프로그래머스] 코딩테스트 연습 -> 연습문제 -> 평균 구하기 https://school.programmers.co.kr/learn/courses/30/lessons/12944 해결 과정 평균을 구하기 위해 반복문을 이용하여 answer에 합을 누적시켜준다. 그리고 answer의 값을 배열 arr의 길이로 나눈 값을 return 해주면 된다. 소스 코드 class Solution { public double solution(int[] arr) { double answer = 0; for (int i=0; i 2023. 7. 30.
JAVA 프로그래머스 [연속된 수의 합] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 연속된 수의 합 https://school.programmers.co.kr/learn/courses/30/lessons/120923 해결 과정 소스 코드 2023. 6. 15.
JAVA 프로그래머스 [문자열 밀기] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 문자열 밀기 https://school.programmers.co.kr/learn/courses/30/lessons/120921 해결 과정 소스 코드 2023. 6. 15.
JAVA 프로그래머스 [종이 자르기] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 종이 자르기 https://school.programmers.co.kr/learn/courses/30/lessons/120922 해결 과정 소스 코드 2023. 6. 15.
JAVA 프로그래머스 [다음에 올 숫자] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 다음에 올 숫자 https://school.programmers.co.kr/learn/courses/30/lessons/120924 해결 과정 소스 코드 2023. 6. 15.
JAVA 프로그래머스 [이진수 더하기] 자바 [프로그래머스] 코딩테스트 연습 -> 코딩테스트 입문 -> 이진수 더하기 https://school.programmers.co.kr/learn/courses/30/lessons/120885 해결 과정 소스 코드 2023. 6. 14.
728x90
반응형