Where who wants to meet someone

수열과 구간 쿼리 1 본문

프로그래머스 알고리즘 문제 기록/코딩 기초 트레이닝

수열과 구간 쿼리 1

Lust3r 2024. 1. 25. 21:31
728x90

문제

https://school.programmers.co.kr/learn/courses/30/lessons/181883

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 답안 / 다른 사람들의 답안

import Foundation

func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
    var result = arr

    for query in queries {
        for i in query[0]...query[1] {
            result[i] += 1
        }
    }

    return result
}

- 2중 for문을 사용하여 각 쿼리의 값 사이의 i를 가지고 result[i]의 값에 1을 더해서 반환

 

// 풀이 1
import Foundation

func solution(_ arr:[Int], _ queries:[[Int]]) -> [Int] {
    var arr = arr
    queries.forEach { ($0[0]...$0[1]).forEach { arr[$0] += 1 } } 
    return arr
}

- 대부분의 풀이가 똑같이 2중 for문을 사용했기에 다른 방법으로 풀은 풀이만 기재

- 두 번의 for문 대신 forEach를 사용

 

점수: +3