본문 바로가기
Coding Test

Progammers.음양 더하기 (Swift)

by iOS_woo 2022. 3. 29.

문제 설명

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 return 하도록 solution 함수를 완성해주세요.

 

https://programmers.co.kr/learn/courses/30/lessons/76501

 

코딩테스트 연습 - 음양 더하기

어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re

programmers.co.kr

 

다른 사람의 풀이

func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
    return zip(absolutes, signs).map({ $1 ? $0 : -1 * $0 }).reduce(0, +)
}

zip() 함수를 이번에 알게 되었다. 두개의 시퀀스를 쌍으로 만들어주는 함수이다. 

 

import Foundation

func solution(_ absolutes:[Int], _ signs:[Bool]) -> Int {
    var answer = 0

    for i in 0..<signs.count {
        answer += signs[i] == true ? absolutes[i] : -absolutes[i]
    }

    return answer
}

fon in 구문으로 푼 사람도 있었다. 익숙해지고 다른 코테에서 꼭 써보고 연습해야겠다. 

 

소감

reduce(), map()까지는 떠올랐지만, 두개의 어레이를 비교하는 것에서 막혀서 답안을 본 문제이다. 

zip과 for 등 코테에서 유용하게 쓸 수 있을 것들을 배우게 되었다. 

 

참고: 

https://memohg.tistory.com/93

 

Swift. 행렬의 덧셈( feat. zip )

 문제. 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성

memohg.tistory.com

https://babbab2.tistory.com/95

 

Swift) for - in / forEach 제대로 알고 쓰기

안녕하세요 :) 소들입니다 🌸 오늘은 우리가 Swift로 프로그래밍을 하다보면 정말정말 많이 쓰는 for - in forEach 에 대해서 알아보려고 해요!!!! 이 둘의 사용법은 물론 차이점에 대해서도 알아볼 것

babbab2.tistory.com

 

댓글