Algorithm/Programmers

문제 설명 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요. 제한사항 absolutes의 길이는 1 이상 1,000 이하입니다. absolutes의 모든 수는 각각 1 이상 1,000 이하입니다. signs의 길이는 absolutes의 길이와 같습니다. signs[i] 가 참이면 absolutes[i] 의 실제 정수가 양수임을, 그렇지 않으면 음수임을 의미합니다. 입출력 예 absolutes signs result [4,7,12] [true,false,true] 9 [1,2,3] [false,fals..
문제 설명 대문자와 소문자가 섞여있는 문자열 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 합..
문제 설명 길이가 n이고, "수박수박수박수...."와 같은 패턴을 유지하는 문자열을 리턴하는 함수, solution을 완성하세요. 예를들어 n이 4이면 "수박수박"을 리턴하고 3이라면 "수박수"를 리턴하면 됩니다. 제한 조건 n은 길이 10,000이하인 자연수입니다. 입출력 예 n return 3 "수박수" 4 "수박수박" 길이가 n으로 주어졌을 때 n까지 수박수박수박수..와 같은 패턴을 유지하는 문자열을 리턴하는 함수를 만들면 된다! 다 풀고나서 다른 사람 풀이를 보며 한참을 웃었는데 ㅋㅋㅋㅋㅋ 기똥차다 많은 좋아요와 댓글을 받은 문제 ㅋㅋㅋㅋㅋㅋㅋ 진짜 와후.. 예전에 이런 짤을 본 적이 있었는데 이 정도의.. 경지에 오른 사람을 실제로 보니까 더 반가웠다. 어쨌든 아래는 해답 package list..
문제 설명 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이용료가 100이었다면 2번째에는 200, 3번째에는 300으로 요금이 인상됩니다. 놀이기구를 count번 타게 되면 현재 자신이 가지고 있는 금액에서 얼마가 모자라는지를 return 하도록 solution 함수를 완성하세요. 단, 금액이 부족하지 않으면 0을 return 하세요. 제한사항 놀이기구의 이용료 price : 1 ≤ price ≤ 2,500, price는 자연수 처음 가지고 있던 금액 money : 1 ≤ money ≤ 1,000,000,000, money는 자연수 놀이기구의 이용 횟수 c..
문제 설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 4 이상, 20이하인 문자열입니다. 입출력 예 phone_number return "01033334444" "*******4444" "027778888" "*****8888" 휴대폰번호와 전화번호 구분없이 맨 뒷자리 4자리를 제외한 나머지 숫자는 마스킹 처리하면 되는 문제. 실무에서는 쿼리로도 해결 가능하고 자바로도 해결 가능한 문제이다! 다른 레벨1 문제들을 많이 풀면서 항상 언제풀지~ 하면서 봤던 ..
문제 설명 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. 입출력 예 x n answer 2 5 [2,4,6,8,10] 4 3 [4,8,12] -4 2 [-4, -8] ※ 제한조건을 잘 읽어보자! 정수 x와 자연수 n을 입력 받아 x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야하는 문제! 2와 5를 파라미터로 넘겨준다면, 2부터 시작해 2씩 증가하는 5개의 숫자 리스트를 리턴하면 된다. 어? 너무 쉬운 거 아니야..
문제 설명 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 3 ≤ n ≤ 1,000,000 입출력 예 n result 10 3 12 11 입출력 예 설명 입출력 예 #1 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다. 입출력 예 #2 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다. 매개변수로 주어진 n을 x로 나눴을 때 나머지가 1이 되는 가장 작은 자연수 x를 retu..
문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요. 제한사항 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다. completion의 길이는 participant의 길이보다 1 작습니다. 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다. 참가자 중에는 동명이인이 있을 수 있습니다. 입출력 예 participant completion return ["leo", "kik..
문제 설명 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요. 제한 사항 n은 0 이상 3000이하인 정수입니다. 입출력 예 n return 12 28 5 6 입출력 예 설명 입출력 예 #1 12의 약수는 1, 2, 3, 4, 6, 12입니다. 이를 모두 더하면 28입니다. 입출력 예 #2 5의 약수는 1, 5입니다. 이를 모두 더하면 6입니다. 비교적 쉬운 난이도 1의 연습문제, 약수의 합 n으로 주어지는 정수의 모든 약수를 더하고 그 값을 사용자에게 출력해주면 되는 문제. 자바의 % 연산자와 반복문만 사용할 수 있다면 간단하게 풀 수 있는 문제이다. 1부터 n까지 1씩 증가시키면서 반복문을 실행하고, 증가하는 수와 n을 나눴을 때 결과가 0이라면 해당 수는..
문제 설명 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ numbers의 길이 ≤ 9 0 ≤ numbers의 모든 수 ≤ 9 numbers의 모든 수는 서로 다릅니다. 입출력 예 numbers result [1,2,3,4,6,7,8,0] 14 [5,8,4,0,6,7,9] 6 입출력 예 설명 입출력 예 #1 5, 9가 numbers에 없으므로, 5 + 9 = 14를 return 해야 합니다. 입출력 예 #2 1, 2, 3이 numbers에 없으므로, 1 + 2 + 3 = 6을 return 해야 합니다. 연휴..와 야근을..
하샤드 수(harshad number)는 주어진 진법에서 수의 각 자릿수 숫자의 합으로 나눠떨어지는 자연수를 말한다. 인도의 수학자 카프리카가 정의했으며, '기쁨을 준다'는 뜻의 산스크리트어 단어인 harshad에서 유래했다. (출처 : 꺼무위키) 문제 하샤드 수 문제 설명 양의 정수 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 입출력 예 ..
문제 설명 두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 제한 조건 a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요. a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다. a와 b의 대소관계는 정해져있지 않습니다. 입출력 예 a b return 3 5 12 3 3 3 5 3 12 a, b 두개의 정수를 받아 a b 사이에 있는 모든 값들을 더 하고 사용자에게 출력해주면 되는 문제 아주 예~~~전에 프로그래머스에서 한 문제도 풀 지 못했던 시절 작성해놓은 코드가 있어서 살짝 손만봐서 제출했다. 풀고나서 다른 사람들의..
문제 설명 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. 제한 조건 n은 10,000,000,000이하인 자연수입니다. 입출력 예 n return 12345 [5,4,3,2,1] 자연수 n을 받아, 배열로 만든 뒤 역순으로 출력해주면 되는 문제, 우선 n을 받아 String으로 파싱 후 스트링 배열에 넣어주고, 배열을 Collections의 reverse 함수를 사용하여 뒤집고, 뒤집힌 배열은 반복문을 사용해서 그대로 반환될 int형 배열에 넣어준다. 음.. 간단..한? 문제였다! 아래는 해답 package list; import java.util.Arrays; import java.util.Collection..
숫자로만 이루어져 있는 배열 하나, 배열의 숫자들을 나눠줄 인자값 하나로 문제를 풀어야한다. 반환할 값이 있는 경우에 반환하되, 반환할 값이 없다면 -1을 return한다. 딱! 보면 금방풀 수 있는 문제 지만 나는 똥고집 부린다고 엄청 헤맸다. 그냥 ArrayList 사용해서 넣어줄건 넣어주고 뺄건 빼 버렸음 됐는데 뭐에 씌인건지 ArrayList 말고 단순 배열을 반복문으로 제어하면 되지 않을까? 하다가 시간만 왕창 날렸다 ㅋㅋㅋㅋ ArrayList를 사용하면 문제가 상당히 쉬워진다. ArrayList로 Integer형 배열을 하나 만들고, 파라미터로 넘어온 s배열과 divisor를 반복문으로 나누며, 만약 나머지가 0일 경우 해당 숫자를 중간 배열에 넣어준다. 반복문이 종료되고 0으로 나눠지는 수가..
long형으로 전달되는 정수 n을 내림차순으로 정렬해야하는 문제, 레벨1의 여러 문제를 풀어보면 split이라는 함수를 만나게 되는데, 그 함수를 사용하여 풀면 되는 문제! + Collection의 reverse까지 다만 이 문제를 나의 풀이대로 풀다보면 String.join 이라는 함수를 만나게 되는데, 이 함수는 나도.. 검색해서 찾았다 String.join Concatenates the elements of a specified array or the members of a collection, using the specified separator between each element or member. 각 요소나 멤버 사이에 지정된 구분 기호를 사용하여 지정된 배열의 요소나 컬렉션의 멤버를 연결합..
헌일