티스토리 뷰
반응형
오늘은 코딜리티 사이트에서 제공하는 easy 난이도 문제인 permCheck문제를 swift언어로 풀어보도록 하겠습니다.
코딜리티의 permCheck문제는 Codility Developer Training사이트의 Lesson4, Counting Elements 를 통해서 풀 수 있습니다. 해당 문제는 N 크기의 배열이 주어졌을때 해당 배열에 1 ~ N의 숫자가 한번씩 전부 들어있는지를 확인하여 전부 들어있을경우 1, 그 외에는 0을 반환하는 문제입니다. 자세한 문제설명은 코딜리티 사이트에서 확인하시기 바랍니다.
바로 swift언어를 통해 문제 풀어보도록 하겠습니다.
코딜리티 Codility easy문제, permCheck swift언어로 풀기
저는 딕셔너리를 사용해서 문제를 풀었습니다.
5행) 먼저 Int, Bool값을 각각 키, 값으로 갖는 딕셔너리를 선언합니다. Int 키는 배열에 있는 요소 값이 들어가며, 1 ~ N의 요소가 각각 하나씩 정상적으로 들어가 있는지를 확인합니다.
6행) 최댓값, 중복되지 않은 값의 갯수를 카운팅할 변수, mxValue, count를 선언합니다.
7 ~ 15행) 딕셔너리에 배열의 각 요소 값을 키로 넣어서 중복여부를 확인합니다. 만약 중복값이 존재하면 0을 리턴합니다.
16행) 앞서 순회 간 중복값이 없었고, 순회횟수가 최댓값과 동일하면, 1 ~ N의 값이 모두 하나씩 존재하고, 중복값이 없는 것이므로, 1을 반환합니다.
제출결과는 아래와 같습니다. (정확성, 효율성 100%) 기타 의견, 질문 댓글 달아주세요. 그럼 이만
Lesson4, Counting Elements, permCheck 문제 제출결과
반응형
'알고리즘 정보 > Swift 알고리즘' 카테고리의 다른 글
백준 17471, 게리맨더링 조합, 완전탐색 swift 문제풀이 (0) | 2021.10.02 |
---|---|
백준 1043 거짓말, 유니온파인드 swift언어 문제풀이 (0) | 2021.09.22 |
백준 8595 히든넘버 아스키코드, reduce 활용 swift풀이 (0) | 2021.07.30 |
카카오인턴십 BFS문제, 거리두기 확인하기 swift풀이 (0) | 2021.07.26 |
프로그래머스 구현문제, 행렬테두리회전하기 swift 풀이 (0) | 2021.07.25 |
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 알고리즘
- 백준알고리즘
- 백준swift
- swift 문자열
- swift reduce
- 김프매매
- uikit
- swift 기초
- 스위프트
- ios
- 컬렉션
- Protocol
- swift문제
- 자연어처리
- 알고리즘문제
- swift언어
- swift string
- 부스트코스
- 프로그래머스swift
- CoreML
- publisher
- Collection
- 개발자문서
- 프로그래머스
- swift
- swift알고리즘
- Swift 알고리즘
- createML
- SwiftUI
- 프로토콜
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함