Algorithm/Programmers 53

Programmers / Level 1 / 문자열 다루기 기본

[문제설명] 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. [제한사항] s는 길이 1 이상, 길이 8 이하인 문자열 입니다. [입출력 예] s return "a234" false "1234" true class Solution { public boolean solution(String s) { final String REGEX = "[0-9]+"; boolean answer = false; if((s.length() == 4 || s.length() == 6) && s.matches(REGEX)) { answer = true; } return an..

Programmers / Level 1 / 수박수박수박수박수박수?

[문제설명] 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. [제한사항] n은 길이 10,000이하인 자연수입니다. [입출력 예] n return 3 "수박수" 4 "수박수박" class Solution { public String solution(int n) { String answer = ""; for(int i=0; i

Programmers / Level 1 / 제일 작은 수 제거하기

[문제설명] 정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [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] import java.util.ArrayList; class Solution { public int[] solution(int[] arr) { int min = arr[0]; // 가장 작은 수 ..

Programmers / Level 1 / 하샤드 수

[문제설명] 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. [제한사항] x는 1 이상, 10000 이하인 정수입니다. [입출력 예] 10 true 12 true 11 false 13 false class Solution { public boolean solution(int x) { boolean answer = true; int num = 0; // x의 자릿수의 합 int a = x; while(a >= 1) { num += a%10; a /= 10; } if(x % num ..

Programmers / Level 1 / 핸드폰 번호 가리기

[문제설명] 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. [제한사항] phone_number는 길이 4 이상, 20이하인 문자열입니다. [입출력 예] class Solution { public String solution(String phone_number) { String star = phone_number.substring(0, phone_number.length()-4); // *로 변경할 문자 String noStar = phone_number.substring(phon..

Programmers / Level 1 / x만큼 간격이 있는 n개의 숫자

[문제설명] 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. [제한사항] x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. [입출력 예] 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]; long num = x; // 초기값 설정 for(int i=0; i

Programmers / Level 1 / 직사각형 별찍기

[문제설명] 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. [제한사항] n과 m은 각각 1000 이하인 자연수입니다. [입출력 예] 입력 5 3 출력 ***** ***** ***** import java.util.Scanner; class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); for(int i=0; i

Programmers / Level 1 / 짝수와 홀수

[문제설명] 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요. [제한사항] num은 int 범위의 정수입니다 0은 짝수입니다. [입출력 예] 3 "Odd" 4 "Even" class Solution { public String solution(int num) { String answer = ""; if(num % 2 == 0) { // 짝수인 경우 answer = "Even"; } else { // 홀수인 경우 answer = "Odd"; } return answer; } }