일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- windosws wbcs
- windosw 문자열
- web
- 정렬 알고리즘
- 파일 시스템
- PHP
- pwnable.kr
- 미로 탐색 알고리즘
- ftz level13
- 백준
- SWiFT
- 파이썬
- 암호수학
- 큐
- Java
- 스택
- 두근두근 자료구조
- OSI
- 시간복잡도
- Stack
- War Game
- level13
- HTML
- 자료구조
- System
- 재귀
- C
- c언어
- ftz
- LoB
Archives
- Today
- Total
나의 기록, 현진록
[Swift] 프로그래머스 코딩테스트 연습 > 연습문제 > 인사고과 본문
Programming/Algorithm & Data Structure
[Swift] 프로그래머스 코딩테스트 연습 > 연습문제 > 인사고과
guswlsdk 2023. 5. 3. 16:15반응형
못 풀겠어서 풀이를 검색했고 이걸 왜 못 풀었나 싶어서 죄책감과 함께 오랜만에 글 씁니다.
문제 풀이
근무 태도와 동료 평가 점수 "모두" 다른 사원보다 낮을 경우 인센티브를 제외한다는 조건을 보고 어떤 방식으로든(이중 포문, 정렬 등) 탐색을 생각했다. 하지만 score에 길이가 최대 10만이기 때문에 O(N)으로 풀 수 있는 방법을 생각했는데 생각이 나질 않았다.
근무 태도와 동료 평가 점수 두 가지를 고려해야 하기 때문에 어려웠다. 정렬을 사용한다는 건 알았는데 말이지...
인센티브를 제외할 놈만 쉽게 알아낼 수 있도록 정리해보자...!
1. 근무 태도와 동료 평가 점수 둘 중 하나를 선택해서 먼저 내림차순으로 정렬한다.
근무 태도 점수를 내림차순으로 하기로 한다면 i 번째 근무태도는 i+1 번째 근무 태도보다 크거나 같을 것이다.
그렇다면 i 사원 이후의 i+1..2...3..4..........n 사원들은 근무 태도 점수가 낮은 경우에 모두 해당된다.
2. 인센티브 제외할 놈을 찾기 위해서는 근무 태도 점수가 같을 경우 동료 평가 점수는 오름차순으로 정렬되어야 한다.
이때 i 사원 이후의 동료 평가 점수가 낮은 경우만 고려하면 "모두" 낮은 경우에 해당 된다.
[[2,2],[1,4],[3,2],[3,2],[2,1]] -> [[3,2], [3,2], [2,1], [2,2], [1,4]]
import Foundation
func solution(_ scores:[[Int]]) -> Int {
var scores = scores
let wan = scores.first!
var result = 1
scores.sort{ $0[0] == $1[0] ? $0[1] < $1[1] : $0[0] > $1[0]}
var maxScore = 0
for score in scores {
if maxScore > score[1]{
if score == wan{
return -1
}
}else{
maxScore = max(maxScore, score[1])
if score[0] + score[1] > wan[0] + wan[1]{
result += 1
}
}
}
return result
}
반응형
'Programming > Algorithm & Data Structure' 카테고리의 다른 글
[Swift] 프로그래머스 입국심사 (2) | 2024.11.13 |
---|---|
[Swift] 백준 게임 1072 (0) | 2024.11.12 |
[Swift] 프로그래머스 코딩테스트 연습>2022 KAKAO TECH INTERNSHIP > 두 큐 합 같게 만들기 (0) | 2023.03.20 |
[Swift] 프로그래머스 코딩테스트 연습> 연습문제> 기사단원의 무기 (0) | 2023.01.05 |
[Swift] 프로그래머스 코딩테스트 연습> 연습문제 > 점 찍기 (0) | 2023.01.05 |