본문 바로가기

programmers-코딩테스트 연습/Level 1. 자바

(43)
2021-06-17 / 문자열 내 p와 y의 개수 문제 설명 대문자와 소문자가 섞여있는 문자열 s가 주어진다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성한다. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴한다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않는다. 예를 들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return한다. 제한 사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있다. 입출력 예 s answer "pPoooyY" true "Pyy" false 입출력 예 설명 입출력 예 #1 'p'의 개수 2개, 'y'의 개수 2개로 같으므로 true를 return 한다. 입출력..
2021-06-16 / 최대공약수와 최소공배수 문제 설명 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성한다. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 된다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 한다. 제한 사항 두 수는 1이상 1000000이하의 자연수이다. 입출력 예 n m return 3 12 [3, 12] 2 5 [1, 10] 입출력 예 설명 입출력 예 #1 위의 설명과 같다. 입출력 예 #2 자연수 2와 5의 최대공약수는 1, 최소공배수는 10이므로 [1, 10]을 리턴해야 한다. 초기 코드 class Solution { public int[] solution(int n, int m) {..
2021-06-15 / 제일 작은 수 제거하기 문제 설명 정수를 저장한 배열, arr에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성한다. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴한다. 예를 들어 [4, 3, 2, 1]인 경우는 [4, 3, 2]를 리턴하고, [10]면 [-1]을 리턴한다. 제한 조건 arr은 길이 1 이상인 배열이다. 인덱스 i, j에 대해 i ≠ j이면 arr[i] ≠ arr[j] 이다. 입출력 예 arr return [4, 3, 2, 1] [4, 3, 2] [10] [-1] 초기 코드 class Solution { public int[] solution(int[] arr) { int[] answer = {}; return answer; } } 정답 코드 class Solution..
2021-06-15 / 서울에서 김서방 찾기 문제 설명 String형 배열 seoul의 element 중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성한다. seoul에 "Kim"오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없다. 제한 사항 seoul은 길이 1 이상, 1000 이하인 배열이다. seoul의 원소는 길이 1 이상, 20 이하인 문자열이다. "Kim"은 반드시 seoul 안에 포함되어 있다. 입출력 예 seoul return ["Jane", "Kim"] "김서방은 1에 있다" 초기 코드 class Solution { public String solution(String[] seoul) { String answer = ""; return answer; } } 정답 코..
2021-06-14 / 직사각형 별찍기 문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어진다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력한다. 제한 조건 n과 m은 각각 1000 이하인 자연수이다. 예시 입력 5 3 출력 ***** ***** ***** 초기 코드 import java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); System.out.println(a + b); } } 정답 코드 import java.util.Scanner; publ..
2021-06-13 / 핸드폰 번호 가리기 문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가린다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수 solution을 완성한다. 제한 조건 s는 길이 4 이상, 20이하인 문자열이다. 입출력 예 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 초기 코드 class Solution { public String solution(String phone_number) { String answer = ""; return answer; } } 정답 코드 class Solution { pu..
2021-06-13 / 하샤드 수 문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 한다. 예를 들어 18의 자릿수의 합은 1 + 8 = 9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수이다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지를 검사하는 함수, solution을 완성한다. 제한 조건 x는 1 이상, 10000 이하인 정수이다. 입출력 예 arr return 10 true 12 true 11 false 13 false 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1이다. 10은 1로 나누어 떨어지므로 10은 하샤드 수이다. 입출력 예 #2 12의 모든 자릿수의 합은 3이다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수이다. 입출력 예 #3 11의 모든 자릿수의 합은 2..
2021-06-12 / 콜라츠 추측 문제 설명 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 미만인 정수이다. 입출력 예 n result 6 8 ..