본문 바로가기

Computer Science34

프로그래머스 알고리즘 문제[문자열을 정수로 바꾸기] # 문제 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요. # 제한조건 s의 길이는 1 이상 5이하입니다. s의 맨앞에는 부호(+, -)가 올 수 있습니다. s는 부호와 숫자로만 이루어져있습니다. s는 "0"으로 시작하지 않습니다. # 입출력 예 예를들어 str이 "1234"이면 1234를 반환하고, "-1234"이면 -1234를 반환하면 됩니다. str은 부호(+,-)와 숫자로만 구성되어 있고, 잘못된 값이 입력되는 경우는 없습니다 # 풀이 class Solution { fun solution(s: String): Int { var answer = s.toInt() return answer } } -> 굳이 answer에다가 안담고 바로 return s,toInt()해줘도.. 2024. 3. 11.
프로그래머스 알고리즘 문제[자연수 뒤집어 배열로 만들기] # 문제 자연수 n을 뒤집어 각 자리 숫자를 원소로 가지는 배열 형태로 리턴해주세요. 예를들어 n이 12345이면 [5,4,3,2,1]을 리턴합니다. # 제한조건 n은 10,000,000,000이하인 자연수입니다. # 입출력 예 n = 12345 , return = [5,4,3,2,1] # 풀이 class Solution { fun solution(n: Long): IntArray { var num : Long = n var answer = ArrayList() while (num > 0 ) { answer.add((num%10).toInt()) num = num/10 } return answer.toIntArray() } } 일단 answer 이라는 빈 리스트를 만들어놓고, num이 0보다 크면 해당 .. 2024. 3. 8.
프로그래머스 알고리즘 문제[x만큼 간격이 있는 n개의 숫자] # 문제 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. #제한조건 x는 -10000000 이상, 10000000 이하인 정수입니다. n은 1000 이하인 자연수입니다. # 입출력 예 ex) x = 2, n = 5, answer = [2,4,6,8,10] ex) x = 4, n = 3, answer = [4,8,12] ex) x = -4, n = 2, answer = [-4,-8] #풀이 class Solution { fun solution(x: Int, n: Int): LongArray { var List = mutableListOf() .. 2024. 3. 7.
프로그래머스 알고리즘 문제[나머지가 1이 되는 수 찾기] # 문제 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. # 제한사항 3 ≤ n ≤ 1,000,000 # 입출력 예 # 풀이 class Solution { fun solution(n: Int): Int { var answer: Int = 0 for (x in 2..n-1){ if (n%x == 1){ answer = x break } } return answer } } 먼저 1과 n은 나머지가 1이 될 수 없기 때문에, 불필요한 반복을 제거하기위해서 2부터 n-1까지만 반복문을 돌게했고, n을 x로 나눴을때 나머지가 1이면, 나머지가 1이 되는 첫 수를 .. 2024. 3. 6.
프로그래머스 알고리즘 문제[약수의 합] #문제 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요 # 제한사항 n은 0 이상 3000이하인 정수입니다. # 입출력 예 ex) 1) 12의 약수는 1,2,3,4,6,12 이다. 이를 모두더하면 1+2+3+4+6+12 = 28이다 2) 5의 약수는 1,5 이다. 이를 모두 더하면 1+5 = 6이다 # 풀이 class Solution { fun solution(n: Int): Int { var answer = 0 for (i in 1..n){ if (n%i == 0){ answer += i } } return answer } } 예시에서 볼 수 있듯이 약수로 나누면 나머지가 모두 0인 특징을 볼 수 있다 따라서 for문을 통해 1부터 n까지 반복문을 돌다가,.. 2024. 3. 5.
프로그래머스 알고리즘 문제[자릿수 더하기] 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.예를들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다. # 제한사항 N의 범위 : 100,000,000 이하의 자연수 # 입출력 예 # 풀이 class Solution { fun solution(n: Int): Int { var answer = 0 var num = n while (num > 0){ answer += num%10 num /= 10 } return answer } } A += B 는 A = A+B answer += num%10 는 answer = answer + num%10 10으로 나누는 과정을 반복하고 10으로 나눴을때의 나머지를 더해가는 방식으로 했다 .. 2024. 2. 24.