티스토리 뷰
프로그래머스 1단계문제, 음양더하기 문제 설명
프로그래머스 음양더하기 swift 문제풀이 링크 ▼
안녕하세요? 오늘은 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 알고리즘 코딩 되시길 바랍니다. 👍🏼
'알고리즘 정보 > Swift 알고리즘' 카테고리의 다른 글
코드챌린지 문자열 스택 괄호회전하기 스위프트 언어 문제풀이 (0) | 2021.07.15 |
---|---|
프로그래머스 3단계 BFS 문제, 순위 swift 알고리즘 풀이 (0) | 2021.07.08 |
프로그래머스 카카오 코테문제, 비밀지도 swift 풀이 (0) | 2021.03.21 |
프로그래머스 문자열 문제, 큰 수 만들기 스위프트 풀이 (0) | 2021.03.06 |
프로그래머스 구현문제, Lv2 스킬트리 swift 풀이 (0) | 2021.03.04 |
- Total
- Today
- Yesterday
- 백준알고리즘
- ios
- 백준swift
- 스위프트
- swift문제
- swift string
- Swift 알고리즘
- Collection
- CoreML
- swift알고리즘
- swift 기초
- swift언어
- publisher
- 알고리즘문제
- 김프매매
- 프로그래머스swift
- 컬렉션
- 알고리즘
- 개발자문서
- uikit
- swift
- 프로토콜
- swift 문자열
- createML
- 프로그래머스
- SwiftUI
- 자연어처리
- 부스트코스
- swift reduce
- Protocol
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |