java 54

[1단계/JAVA]: 이상한 문자 만들기

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백 문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야 합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. class Solution { public String solution(String s) { String answer = ""; String[] arr = s.split(""); int index = 0; for(int i = 0; i < arr.length; i++){ if(arr[i].equals..

프로그래머스 2022.02.24

[1단계/JAVA]: 자릿수 더하기

자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요. 예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. N의 범위 : 100,000,000 이하의 자연수 import java.util.*; public class Solution { public int solution(int n) { int answer = 0; int number, sum = 0; while(n != 0){ number = n%10; sum = sum + number; n = n/10; } answer = sum; return answer; } } 쉽게 풀 수 있는 문제였다. 앞으로도 꾸준히 한 문제씩 풀어 실력과 코딩에 관한 지식의 폭을 넓혀야겠다.

프로그래머스 2022.02.23

[1단계/JAVA]: 자연수 뒤집어 배열로 만들기

자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를 들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. n은 10,000,000,000이하인 자연수입니다. class Solution { public int[] solution(long n) { String str = "" + n; int len = str.length(); int[] answer = new int[len]; for(int i = 0; i < len; i++){ answer[i] = (int)(n % 10); n = n / 10; } return answer; } } 다른 사람들의 풀이를 보니 형변환과 reserve()를 사용하여 푼 풀이도 있었다. 다양한 풀이법을 보면서 공부하면 더 많은 것을 알 수..

프로그래머스 2022.02.22

[1단계/JAVA]: 정수 내림차순으로 배치하기

함수 solution은 정수 n을 매개변수로 입력받습니다. n의 각 자릿수를 큰 것부터 작은 순으로 정렬한 새로운 정수를 리턴해주세요. 예를 들어 n이 118372면 873211을 리턴하면 됩니다. n은 1이상 8000000000 이하인 자연수입니다. import java.util.*; class Solution { public long solution(long n) { long answer = 0; String str = Long.toString(n); String[] arr = str.split(""); Arrays.sort(arr, Collections.reverseOrder()); str = String.join("", arr); answer = Long.parseLong(str); return ..

프로그래머스 2022.02.21

[1단계/JAVA]: 정수 제곱근 판별

임의의 양의 정수 n에 대해, n이 어떤 양의 정수 x의 제곱인지 아닌지 판단하려 합니다. n이 양의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 양의 정수 x의 제곱이 아니라면 -1을 리턴하는 함수를 완성하세요. n은 1 이상, 50000000000000 이하인 양의 정수입니다. class Solution { public long solution(long n) { long answer = 0; int num = (int)Math.sqrt(n); if( Math.pow(num, 2) == n ) answer = (long)Math.pow(num + 1, 2); else answer = -1; return answer; } } Math.sqrt(n)은 n의 제곱근을 구하는 것이고 Math.pow(..

프로그래머스 2022.02.18

[1단계/JAVA]: 제일 작은 수 제거하기

정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를 들어 arr이 [4,3,2,1]인 경우는 [4,3,2]를 리턴하고, [10] 면 [-1]을 리턴합니다. arr은 길이 1 이상인 배열입니다. 인덱스 i, j에 대해 i ≠ j이면 arr [i] ≠ arr [j]입니다. class Solution { public int[] solution(int[] arr) { int[] answer = new int[arr.length - 1]; int min = arr[0]; int index = 0; if(arr.length == 1){ //리턴하려는 배열이 빈 배열일 경우 int..

프로그래머스 2022.02.17

1단계: 짝수와 홀수

정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. num은 int 범위의 정수입니다. 0은 짝수입니다. class Solution { public String solution(int num) { String answer = ""; if(num % 2 == 0) answer = "Even"; else answer = "Odd"; return answer; } } 쉽게 풀 수 있는 간단한 문제였다. 2주 동안 하루에 한 문제씩 프로그래머스 코딩 문제를 풀고 있다. 꾸준히 코딩 문제를 풀어 코딩 실력도 늘리고 공부하는 습관도 길러야겠다. 파이팅!!

프로그래머스 2022.02.16

1단계: 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. 두 수는 1이상 1000000이하의 자연수입니다. class Solution { public int[] solution(int n, int m) { int[] answer = new int[2]; int min = (n < m) ? n : m; int a = 0; for(int i = 1; i < min+1; i++){ if(n % i == 0 && m % i == 0){ a = i; } } answ..

프로그래머스 2022.02.15

1단계: 콜라츠 추측

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을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 입력된 수, num은 1 이상 8000000 미만인 정수입니다. class Solution { ..

프로그래머스 2022.02.14

1단계: 평균 구하기

정수를 담고 있는 배열 arr의 평균값을 return 하는 함수, solution을 완성해보세요. arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. class Solution { public double solution(int[] arr) { double answer = 0; int sum = 0; for(int i = 0; i < arr.length; i++){ sum = sum + arr[i]; } answer = (double) sum / arr.length; return answer; } } 문제를 풀고난 후 코드를 다시 보니 sum을 처음부터 double형태의 변수로 하면 그 후에 변수의 형태를 변환하는 것 없이 answer를..

프로그래머스 2022.02.11