본문 바로가기

728x90

프로그래머스(Kotlin)

(13)
[프로그래머스 (Kotlin)] 배열의 유사도 코드 힌트1. Set을 활용한 교집합Set 자료구조를 사용하여 두 배열의 교집합을 구하는 방법입니다.Set은 중복을 허용하지 않기 때문에, 공통된 원소만 남길 수 있습니다.2. 포함 여부 확인이 방법은 포함 여부를 체크하는 contains와 개수를 세기 위해 count를 사용하는 간단한 방식입니다.3. for문 사용가장 원초적인 방법이며 코틀린이 처음 공부하는 언어라면 이 방법을 추천합니다.  정답은 더보기 클릭더보기class Solution { fun solution(s1: Array, s2: Array): Int { val set1 = s1.toSet() val set2 = s2.toSet() return (set1.intersect(set2)).size ..
[프로그래머스 (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. 배열 길이 저장주어진 배열의 각 문자열 길이를 새로운 IntArray에 저장합니다.문자열 배열에서 각 요소의 길이를 구한 후, 정수 배열로 변환합니다.2. IntArray 생성IntArray는 특정 크기만큼의 정수 배열을 생성합니다.배열 크기는 strlist의 크기와 동일하게 맞춥니다.3. 람다 표현식 활용람다식 내에서 it은 배열의 인덱스를 의미합니다.it을 사용하여 배열의 각 요소에 접근하고, 해당 문자열의 길이를 반환하는 방식입니다.4. 결과 반환IntArray를 통해 각 문자열의 길이를 담은 배열을 반환하여 최종 결과를 제공합니다.  여러가지 방법map()을 사용하여 각 요소별 길이를 구하고 .toIntArray() 로 변환mutableListOf를 사용하여 strlist 요소의 길..
[프로그래머스 (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 문을 사용하여 % 연산자를 이용해 자릿수를 구하는 방식도 있지만 문자열로 변경하여 풀 수도 있습니다.만약 조금 더 알고 싶다면 여기를 누르세요.  정답은 더보기 클..

728x90