본문 바로가기
알고리즘

[프로그래머스 -체육복][파이썬] -2일차

by Jyujae 2022. 5. 27.

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 리스트, 변수 이렇게 지정해서 푸는 방법도 생각해 보자