https://programmers.co.kr/learn/challenges
--풀이
그리디 알고리즘, 1단계
얼핏 보면 쉬워보이지만, 중복이 없고, 여벌의 체육복이 있는 학생도 도난 당했을 수 있다 라는 조건이 변수였다
이 부분을 새로운 리스트를 만들어서 해야하나 고민했지만, 다른 분들의 코드를 참조해 set을 사용해서
차집합 개념으로 중복된 수를 제거할 수 있었다.
-> 이러면 리스트 자체의 길이도 저절로 바뀌기에 간편한 것 같다
(set 자료형: 집합 자료형. set끼리 집합 연산을 할 수 있음)
index out of range 오류를 2번 정도 만났지만,
range를 벗어날때는 len, range()로 접근하기 보다는
숫자가 위치를 뜻하기 때문에 숫자 자체에 접근하고,
i=1일 때 i-1은 0인데, 이 0이라는 숫자를 의미 없는 case로 분류해버리게 하는 코드도 계속 공부를 해야겠다
ex) i-1 이 0이라 혹은 i+1이 범위를 벗어나는 경우가 생기기 때문에, 그냥 '숫자 자체'로 접근한 것이다
비슷한 문제에도 for i in range~~ 보다는 for i in 리스트, 변수 이렇게 지정해서 푸는 방법도 생각해 보자
'알고리즘' 카테고리의 다른 글
[프로그래머스- 부족한 금액 계산하기][파이썬]- 2일차 (0) | 2022.05.28 |
---|---|
[프로그래머스 - 로또의 최고 순위와 최저 순위][파이썬] -2일차 (0) | 2022.05.27 |
[프로그래머스- 크레인 인형뽑기 게임][파이썬]-2일차 (0) | 2022.05.27 |
[프로그래머스- 음양 더하기][파이썬]-1일차 (0) | 2022.05.26 |
[프로그래머스- k번째수][파이썬] - 1일차 (0) | 2022.05.26 |