본문 바로가기

728x90

프로그래머스(Kotlin)/Level 1

(8)
[프로그래머스 (Kotlin)] 나누어 떨어지는 숫자 배열 힌트정렬과 필터링먼저 arr.sorted()를 통해 배열을 오름차순으로 정렬한 후, filter 함수를 사용하여 divisor로 나누어 떨어지는 요소만 필터링합니다.filter { it % divisor == 0 }는 각 요소에 대해 나머지가 0인 경우만 남깁니다.빈 배열 처리필터링된 결과 배열 result의 크기가 0일 경우, 즉 조건을 만족하는 요소가 없을 때는 IntArray(1) { -1 }를 반환하여 -1을 값으로 가지는 배열을 반환합니다.이는 문제의 조건을 만족하지 않는 경우에 대비한 예외 처리입니다.정렬된 결과 반환필터링된 결과가 있을 경우, 정렬된 상태에서 결과를 반환하므로 배열의 요소는 항상 오름차순으로 출력됩니다. 정답은 더보기 클릭더보기class Solution { fun sol..
[프로그래머스 (Kotlin)] 없는 숫자 더하기 코드 힌트1. 초기값 설정0부터 9까지의 모든 자연수의 합은 45입니다.문제에서 제공된 배열에 없는 숫자를 찾아야 하므로, 먼저 45로 초기화합니다.2. 배열 순회배열에 존재하는 숫자들을 하나씩 순회하면서 result에서 해당 숫자를 차감합니다.배열의 인덱스를 활용해 각 요소를 차례로 접근합니다.3. 최종 결과모든 배열 요소를 차감한 후 남은 값이 배열에 존재하지 않는 숫자들의 합이므로 이를 반환합니다.  여러가지 방법으로 풀기forEachmapfilterNotsum정답은 더보기 클릭더보기class Solution { fun solution(numbers: IntArray): Int { // 변수 result는 0부터 9까지의 숫자의 합인 45로 초기화 var..
[프로그래머스 (Kotlin)] 음양 더하기 코드 힌트1. 배열 순회목표: 두 개의 배열을 동시에 순회하여 각 요소에 접근합니다.방법: 각 배열의 인덱스를 사용하여 대응하는 요소를 가져옵니다.2. 부호 확인목표: 부호 배열의 값을 통해 각 절대값에 대해 더할지 뺄지를 결정합니다.방법: 부호 배열의 요소가 true인 경우 해당 절대값을 더하고, false인 경우 해당 절대값을 뺍니다.3. 최종 결과 반환목표: 모든 계산이 끝난 후 최종 결과값을 반환합니다.방법: 계산된 값을 저장한 변수에서 결과를 반환합니다.정답은 더보기 클릭더보기class Solution { fun solution(absolutes: IntArray, signs: BooleanArray): Int { var result = 0 // 결과를 저장할 변수 초기화 ..
[프로그래머스 (Kotlin)] 콜라츠 추측 코드 힌트1. 반복문을 통한 수열 생성while (n > 1 && result n의 값이 1 이하가 되거나 반복 횟수가 500을 초과할 경우 종료됩니다.2. 짝수 및 홀수 처리짝수일 때: if (n % 2 == 0L) 조건을 사용하여 n이 짝수인지 확인합니다.짝수인 경우 n /= 2를 통해 n을 2로 나누어 값을 업데이트합니다.홀수일 때: else 블록을 통해 홀수인 경우 n을 3배하고 1을 더하는 작업을 수행합니다: n = n * 3 + 1.3. 결과 횟수 관리result++를 사용하여 각 반복이 실행될 때마다 카운트를 증가시킵니다.결과는 반복이 종료된 후 최종적으로 반환됩니다.4. 종료 조건500을 초과한 경우: if (result > 500) 조건문으로 결과가 500을 초과하면 -1을 반환하여 처리..
[프로그래머스 (Kotlin)] 서울에서 김서방 찾기 코드 힌트배열 순회:seoul 배열의 모든 요소를 하나씩 확인합니다.for (i in seoul.indices)를 사용하면 배열의 인덱스를 쉽게 가져올 수 있습니다.조건문 사용:각 요소가 "Kim"인지 확인하기 위해 if (seoul[i] == "Kim") 조건문을 사용합니다.만약 조건이 참이라면, 해당 인덱스를 포함한 문자열을 반환합니다.여러가지 방식으로 풀기:정답에 같이 적겠습니다. 정답은 더보기 클릭더보기class Solution { fun solution(seoul: Array): String { // "Kim"의 인덱스를 찾아서 결과 문자열을 생성하여 반환합니다. // seoul 배열의 각 요소를 순회하면서 "Kim"을 찾습니다. for ..
[프로그래머스 (Kotlin)] 자릿수 더하기 코드 힌트각 자리수의 합 구하기:주어진 숫자 n의 각 자리수를 추출해서 더한 값을 구하는 문제입니다.n = 1234라면, 1 + 2 + 3 + 4 = 10을 계산하는 방식입니다.숫자의 마지막 자리 추출하기:num % 10은 숫자의 마지막 자리를 가져오는 연산입니다.1234 % 10은 4를 반환합니다.숫자 줄이기:num /= 10은 마지막 자리를 제거하는 과정입니다.1234를 10으로 나누면 123이 되어, 다시 3을 처리할 수 있습니다.반복:이 과정을 num이 0이 될 때까지 반복하여 각 자리수를 모두 더한 값을 계산합니다.다른 방법while 문을 사용하여 % 연산자를 이용해 자릿수를 구하는 방식도 있지만 문자열로 변경하여 풀 수도 있습니다.만약 조금 더 알고 싶다면 여기를 누르세요.  정답은 더보기 클..
[프로그래머스 (Kotlin)] 하샤드 수 코드 힌트자리수 합 계산:숫자 x의 각 자리 수를 구한 뒤 그 합을 계산합니다.이 과정은 주어진 수를 10으로 나누어가면서 마지막 자릿수를 추출하고 이를 계속 더하는 방식으로 이루어집니다.하샤드 수 판별:구한 자리수의 합 n으로 원래 숫자 x를 나누었을 때 나머지가 0이면, x는 하샤드 수입니다.그렇지 않으면 하샤드 수가 아닙니다.정답은 더보기 클릭더보기class Solution { fun solution(x: Int): Boolean { var n = 0 // 각 자리 숫자의 합을 저장할 변수 var num = x // x 값을 복사해서 사용할 변수 while (num > 0) { // n..
[프로그래머스 (Kotlin)] 자연수 뒤집어 배열로 만들기 코드 힌트 (2가지 방법)자릿수 추출:주어진 숫자 n을 10으로 나눈 나머지를 이용하여 자릿수를 역순으로 추출합니다.각 자릿수를 리스트에 추가하고, 나눗셈으로 자릿수를 줄여나가며 모든 자릿수가 추출될 때까지 반복합니다.리스트와 배열 변환:자릿수를 저장한 mutableList는 동적으로 크기를 조정할 수 있기 때문에 적합합니다. 마지막으로 toIntArray()를 이용해 리스트를 배열로 변환합니다.  문자열 변환 후 처리:숫자 n을 먼저 문자열로 변환한 후, reversed()를 이용해 숫자의 자릿수를 뒤집습니다.각 문자(char)를 digitToInt()로 변환해 숫자 배열을 생성합니다.간결한 배열 생성:중간 리스트 없이 toIntArray()를 통해 직접 배열로 변환하여 코드가 더욱 간결해집니다. 정답..

728x90