프로그래머스 입문문제

[프로그래머스 입문문제] Day 3 사칙연산, 배열, 수학

Devleoper_yh 2025. 1. 13. 23:18
반응형

1. 나머지 구하기

정수 num1, num2가 매개변수로 주어질 때, num1 num2로 나눈 나머지를 return 하도록 solution 함수를 완성해주세요.


제한사항

  • 0 < num1 ≤ 100
  • 0 < num2 ≤ 100

입출력 예

num1 num2 result
3 2 1
10 5 0

입출력 예 설명

입출력 예 #1

  • num1이 3, num2가 2이므로 3을 2로 나눈 나머지 1을 return 합니다.

입출력 예 #2

  • num1이 10, num2가 5이므로 10을 5로 나눈 나머지 0을 return 합니다.

제출 답안

import Foundation

func solution(_ num1: Int, _ num2: Int) -> Int {
    return num1 % num2
}

2. 중앙값 구하기

중앙값은 어떤 주어진 값들을 크기의 순서대로 정렬했을 때 가장 중앙에 위치하는 값을 의미합니다. 예를 들어 1, 2, 7, 10, 11의 중앙값은 7입니다. 정수 배열 array가 매개변수로 주어질 때, 중앙값을 return 하도록 solution 함수를 완성해보세요.


제한사항

  • array의 길이는 홀수입니다.
  • 0 < array의 길이 < 100
  • -1,000 < array의 원소 < 1,000

입출력 예

array result
[1, 2, 7, 10, 11] 7
[9, -1, 0] 0

입출력 예 설명

입출력 예 #1

  • 본문과 동일합니다.

입출력 예 #2

  • 9, -1, 0을 오름차순 정렬하면 -1, 0, 9이고 가장 중앙에 위치하는 값은 0입니다.

제출 답안

import Foundation

func solution(_ array: [Int]) -> Int {
	// 오름차순으로 정렬
	let s1 = array.sorted()
    
    // 중앙값의 인덱스 계산
    let s2 = s1.count/2
    
    // 중앙값 반환
    return s1[s2]
}

3. 최빈값 구하기

최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다.


제한사항

  • 0 < array의 길이 < 100
  • 0 ≤ array의 원소 < 1000

입출력 예

array result
[1, 2, 3, 3, 3, 4] 3
[1, 1, 2, 2] -1
[1] 1

입출력 예 설명

입출력 예 #1

  • [1, 2, 3, 3, 3, 4]에서 1은 1개 2는 1개 3은 3개 4는 1개로 최빈값은 3입니다.

입출력 예 #2

  • [1, 1, 2, 2]에서 1은 2개 2는 2개로 최빈값이 1, 2입니다. 최빈값이 여러 개이므로 -1을 return 합니다.

입출력 예 #3

  • [1]에는 1만 있으므로 최빈값은 1입니다.
import Foundation

func solution(_ array: [Int]) -> Int {
	// 요소 등장 횟수를 계산하기 위한 딕셔너리 선언
    var s1: [Int:Int] = [:]
    
    for num in array {
    	s1[num, default: 0] += 1
    }
    
    // 최대 등장 횟수 찾기
    let s2 = s1.values.max() ?? 0
    
    // 등장 횟수가 최대값인 숫자 필터링
    let s3 = s1.filter { $0.value == s2 }.map { $0.key}
    
    // 최빈값 반환
    return s3.count > 1 ? -1 : s3.first ?? -1
    
}

 

1. 등장 횟수를 계산

2. 최대 등장 횟수를 찾기

3. 등장 횟수가 최대값인 숫자들을 추출

4. 최빈값이 유일하면 반환하고, 여러 개라면 -1을 반환


4. 짝수는 싫어요

정수 n이 매개변수로 주어질 때, n 이하의 홀수가 오름차순으로 담긴 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ n ≤ 100

입출력 예

n result
10 [1, 3, 5, 7, 9]
15 [1, 3, 5, 7, 9, 11, 13, 15]

입출력 예 설명

입출력 #1

  • 10 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9]를 return합니다.

입출력 #1

  • 15 이하의 홀수가 담긴 배열 [1, 3, 5, 7, 9, 11, 13, 15]를 return합니다.

제출 답안

import Foundation

func solution(_ n: Int) -> [Int] {
	// 범위를 1부터 n까지 모든 수를 filter로 판별. 배열의 각 요소에 대해 홀수인지 판별
    return (1...n).filter { $0 % 2 != 0 }
}

Day 3

반응형