프로그래머스 기초문제

[프로그래머스 기초문제] Day 4

Devleoper_yh 2025. 1. 7. 23:23
반응형

1. n의 배수

정수 num n이 매개 변수로 주어질 때, num n의 배수이면 1을 return n의 배수가 아니라면 0을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 2 ≤ num ≤ 100
  • 2 ≤ n ≤ 9

입출력 예

numnresult
9821
3430

입출력 예 설명

입출력 예 #1

  • 98은 2의 배수이므로 1을 return합니다.

입출력 예 #2

  • 32는 3의 배수가 아니므로 0을 return합니다.

제출 답안

import Foundation

func solution(_ num:Int, _ n:Int) -> Int {
    // num이 n으로 나누어 떨어지면 1, 아니면 0
    return num % n == 0 ? 1 : 0
}

2. 공배수

정수 number n, m이 주어집니다. number n의 배수이면서 m의 배수이면 1을 아니라면 0을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 10 ≤ number ≤ 100
  • 2 ≤ n, m < 10

입출력 예

numnmresult
60231
551050

입출력 예 설명

입출력 예 #1

  • 60은 2의 배수이면서 3의 배수이기 때문에 1을 return합니다.

입출력 예 #2

  • 55는 5의 배수이지만 10의 배수가 아니기 때문에 0을 return합니다.

제출 답안

import Foundation

func solution(_ number:Int, _ n:Int, _ m:Int) -> Int {
    // number가 n과 m으로 나누어 떨어진다면 1 반환, 아니면 0 반환
    return number % n == 0 && number % m == 0 ? 1 : 0
}

 


3. 홀짝에 따라 다른 값 반환하기

양의 정수 n이 매개변수로 주어질 때, n이 홀수라면 n 이하의 홀수인 모든 양의 정수의 합을 return 하고 n이 짝수라면 n 이하의 짝수인 모든 양의 정수의 제곱의 합을 return 하는 solution 함수를 작성해 주세요.

제한사항

  • 1 ≤ n ≤ 100

입출력 예

nresult
716
10220

입출력 예 설명

입출력 예 #1

  • 예제 1번의 n은 7로 홀수입니다. 7 이하의 모든 양의 홀수는 1, 3, 5, 7이고 이들의 합인 1 + 3 + 5 + 7 = 16을 return 합니다.

입출력 예 #2

  • 예제 2번의 n은 10으로 짝수입니다. 10 이하의 모든 양의 짝수는 2, 4, 6, 8, 10이고 이들의 제곱의 합인 22 + 42 + 62 + 82 + 102 = 4 + 16 + 36 + 64 + 100 = 220을 return 합니다.

제출 답안

import Foundation

func solution(_ n: Int) -> Int {
    if n % 2 != 0 {
        // n이 홀수일 경우
        // 1. 1부터 n까지의 범위를 생성
        // 2. 홀수만 필터링
        // 3. 필터링된 홀수들의 합을 계산하여 반환
        return (1...n).filter { $0 % 2 != 0 }.reduce(0, +)
    } else {
        // n이 짝수일 경우
        // 1. 1부터 n까지의 범위를 생성
        // 2. 짝수만 필터링
        // 3. 필터링된 짝수들의 각 숫자를 제곱
        // 4. 제곱된 값들의 합을 계산하여 반환
        return (1...n).filter { $0 % 2 == 0 }.map { $0 * $0 }.reduce(0, +)
    }
}

https://developer.apple.com/documentation/swift/string/filter(_:)

filter(_:) | Apple Developer Documentation

Returns a new collection of the same type containing, in order, the elements of the original collection that satisfy the given predicate.

developer.apple.com

https://developer.apple.com/documentation/Swift/Array/reduce(_:_:)

reduce(_:_:) | Apple Developer Documentation

Returns the result of combining the elements of the sequence using the given closure.

developer.apple.com

https://developer.apple.com/documentation/swift/sequence/map(_:)

map(_:) | Apple Developer Documentation

Returns an array containing the results of mapping the given closure over the sequence’s elements.

developer.apple.com


4. 조건 문자열

문자열에 따라 다음과 같이 두 수의 크기를 비교하려고 합니다.

  • 두 수가 n과 m이라면
    • ">", "=" : n >= m
    • "<", "=" : n <= m
    • ">", "!" : n > m
    • "<", "!" : n < m

두 문자열 ineq와 eq가 주어집니다. ineq는 "<"와 ">"중 하나고, eq는 "="와 "!"중 하나입니다. 그리고 두 정수 n과 m이 주어질 때, n과 m이 ineq와 eq의 조건에 맞으면 1을 아니면 0을 return하도록 solution 함수를 완성해주세요.

제한 사항

  • 1 ≤ n, m ≤ 100

입출력 예

ineqeqnmresult
"<""="20501
">""!"41780

입출력 예 설명

입출력 예 #1

  • 20 <= 50은 참이기 때문에 1을 return합니다.

입출력 예 #2

  • 41 > 78은 거짓이기 때문에 0을 return합니다.

제출 답안

import Foundation

func solution(_ ineq:String, _ eq:String, _ n:Int, _ m:Int) -> Int {
    if ineq == ">" && eq == "=" {
        // n이 m보다 크거나 같을 경우
        return n >= m ? 1 : 0
    } else if ineq == ">" && eq == "!" {
        // n이 m보다 클 경우
        return n > m ? 1 : 0
    } else if ineq == "<" && eq == "=" {
        // n이 m보다 작거나 같을 경우
        return n <= m ? 1 : 0
    } else if ineq == "<" && eq == "!" {
        // n이 m보다 작을 경우
        return n < m ? 1 : 0
    }
    return 0
}

 


5. flag에 따라 다른 값 반환하기

두 정수 a, b와 boolean 변수 flag가 매개변수로 주어질 때, flag가 true면 a + b를 false면 a - b를 return 하는 solution 함수를 작성해 주세요.

제한사항

  • -1,000 ≤ a, b ≤ 1,000

입출력 예

abflagresult
-47true3
-47false-11

 


입출력 예

입출력 예 #1

  • 예제 1번에서 flag가 true이므로 a + b = (-4) + 7 = 3을 return 합니다.

입출력 예 #2

  • 예제 2번에서 flag가 false이므로 a - b = (-4) - 7 = -11을 return 합니다.

제출 답안

import Foundation

func solution(_ a:Int, _ b:Int, _ flag:Bool) -> Int {
	// flag가 true 면 a+b를, false면 a-b를 반환
    return flag == true ? a+b : a-b
}

반응형