728x90
https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=python3
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
지원되는 언어에 Swift가 없긴 하지만 풀어보고 싶어서 풀어봄
GPT에게 테스트 케이스를 더 만들어 달라고 했고
Set을 이용하여 간단하게 풀어봄
GPT의 테스트 케이스 ->
# 테스트 케이스
test_cases = [
# Case 1: 기본 예제 (폰켓몬이 4개, 서로 다른 종류 2개)
([3, 1, 2, 3], 2), # 최대 선택 가능 폰켓몬 종류 수: 2
# Case 2: 모든 폰켓몬이 같은 종류
([1, 1, 1, 1], 1), # 최대 선택 가능 폰켓몬 종류 수: 1
# Case 3: 모든 폰켓몬이 서로 다른 종류
([1, 2, 3, 4], 2), # 최대 선택 가능 폰켓몬 종류 수: 2
# Case 4: 종류가 3개, 폰켓몬은 6개
([3, 3, 3, 2, 2, 1], 3), # 최대 선택 가능 폰켓몬 종류 수: 3
# Case 5: 종류가 5개, 폰켓몬은 8개
([1, 2, 3, 4, 5, 3, 2, 1], 4), # 최대 선택 가능 폰켓몬 종류 수: 4
# Case 6: 종류가 6개, 폰켓몬은 12개 (각 종류 2개씩)
([1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6], 6), # 최대 선택 가능 폰켓몬 종류 수: 6
# Case 7: 종류가 7개, 폰켓몬은 7개
([1, 2, 3, 4, 5, 6, 7], 3), # 최대 선택 가능 폰켓몬 종류 수: 3
]
# 각 케이스는 (입력값, 예상 결과) 형식입니다.
풀이
let nums = 리스트
let canGet = nums.count / 2
let numsSet = Set(nums)
if numsSet.count > canGet {
print(canGet)
} else {
print(numsSet.count)
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스: 해시 - 완주하지 못한 선수 (0) | 2024.11.12 |
---|---|
프로그래머스 - 겹치는 선분의 길이 (0) | 2023.11.30 |
프로그래머스: 해시 - 베스트앨범 (0) | 2023.11.29 |
프로그래머스: 연습문제 - 최솟값 만들기 (0) | 2023.11.27 |
프로그래머스: 월간 코드 챌린지 시즌3 - n^2 배열 자르기 (0) | 2023.10.13 |
댓글