티스토리 뷰

반응형

 

 

 


프로그래머스 1단계문제, 음양더하기 문제 설명

 

프로그래머스 음양더하기 swift 문제풀이 링크 ▼

 

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

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

programmers.co.kr

 

안녕하세요? 오늘은 swift 기초 연습용으로 프로그래머스 1단계문제, 음양더하기를 풀어보겠습니다. 

 

본 문제에서 주어지는 인자는 absolutes, signs가 있습니다. absolutes는 절댓값 숫자 배열이, signs는 boolean값을 통해 각 absolutes 숫자들의 부호가 무엇인지를 알려줍니다.

가령, absolutes : [1, 2, 3] / signs : [false, true, false] 라면 => [-1, 2, -3] 을 의미하게 됩니다. 본문제는 absolutes, signs가 주어질때 실제 부호있는 숫자로 변환하여 그 숫자들의 합을 반환하는 문제입니다. 위 예시로 보면 답은 -1 + 2 + (-3) = -2가 되겠네요.

 

그럼, 바로 swift언어를 통해 문제 풀어보도록 하겠습니다! zip, reduce 함수를 함께 활용해서 단 몇줄로 풀어보겠습니다.

 

 

 


swift zip, reduce 활용, 프로그래머스 1단계문제, 음양더하기 문제 풀이

먼제 제가 본 문제 풀이에 사용할 zip 함수를 간단하게 설명드리겠습니다. zip은 위와 같이 2개의 배열을 합쳐서 튜플배열로 만들어주는 기능의 함수입니다. [String] 타입과 [Int] 타입의 배열 두개를 zip의 첫번째, 두번째 인자로 넣어주면, [(String, Int)] 형태의 튜플배열로 만들어주는 것이죠.

 

본 문제에서는 이 함수를 어떻게 사용하게 될지 감이 잡히시나요? absolutes, signs 배열 두개를 합쳐줄겁니다. 바로 풀이 가보겠습니다. 

 

 

 

 

 

1행) absolutes, signs 배열을 받고 있습니다.

2행) [Int]타입의 absolutes와 [Bool]타입의 signs를 zip를 통해 합쳐주고 있습니다.

위 두개 배열에 대해 zip함수를 사용하면 반환되는 튜플 배열의 타입은 [(Int, Bool)]이 되겠죠.

이어서 reduce를 통해 튜플배열을 순회하면서 각 부호가 있는 숫자를 만들어서 하나로 합쳐줍니다. 그 결과를 그대로 반환하면서 문제풀이에 성공했습니다.

 

 

이렇게 zip, reduce 등의 함수를 활용해서 프로그래머스 1단계문제, 음양더하기를 풀어보았습니다. 제출결과는 아래에 있습니다. 본 문제풀이에 대해 궁금한점이 있으시면 언제는 댓글 달아주시기 바랍니다. 그럼 모두 즐거운 swift 알고리즘 코딩 되시길 바랍니다. 👍🏼

 

 

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함