목록set함수 (3)
오랑우탄의 반란

오늘도 오랑이는 문제를 풉니다. 체육복 풀이 과정 여분 체육복 학생이 도난 당하면 빌려줄 수 없음 → reserve 와 lost 의 공통 숫자 제거lost와 reserve 를 비교해서 가장 작은 수부터 제거 (그리디)answer 는 n - lost 개수우선 마지막 제한사항을 보면 여벌 체육복이 있는 학생이 도난당했을 경우, 해당 학생은 다른 학생에게 옷을 빌려줄 수 없게 된다는 조건이 있습니다. 이를 다른 말로 해석해보면, lost 와 reserve 에 같은 숫자가 있을 경우 해당 숫자는 1) 옷을 빌려줄 수 없기 때문에 reserve 에서 제거해야 하고 2) 이미 여분이 있기 때문에 옷을 빌릴 필요가 없어서 lost 에서도 제거해야 합니다. 즉 lost와 reserve 의 교집합을 제거하면 되는데, ..

오늘도 오랑이는 문제를 풉니다. 숫자 짝꿍 풀이 과정 1X 와 Y 의 각 숫자 비교, 일치할 경우 temp 리스트에 넣어주기 각각의 케이스 정의 (-1, 0, 내림차순 정렬 숫자)이때 첫 번째 조건에서 아래와 같은 예시에 있어 5가 3개 들어가는 것을 방지하기 위해 일치할 경우 Y의 숫자를 공백으로 대체해줍니다. 다른 예시로 X = 5525이고 Y = 1255이면 X와 Y의 짝꿍은 X와 Y에서 공통으로 나타나는 2, 5, 5로 만들 수 있는 가장 큰 정수인 552입니다(X에는 5가 3개, Y에는 5가 2개 나타나므로 남는 5 한 개는 짝 지을 수 없습니다.)def solution(X, Y): answer = '' temp = [] for i in X: if i in ..

오늘도 오랑이는 문제를 풉니다. 두 개 뽑아서 더하기 풀이 과정리스트의 combination 을 구해서 각각의 값을 더하는 문제입니다. 전에 비슷한 문제가 있었는데 어떤 거였는지 기억이 안 나네요..어쨌든 전과 동일하게 numbers 의 i 와 i+1 인 j 에 대해 각각 추출해서 더하면 됩니다.def solution(numbers): answer = [] for i in range(len(numbers)): for j in range(i+1,len(numbers)): answer.append(numbers[i]+numbers[j]) return sorted(answer) 다만 위와 같이 작성했더니 중복값이 나와서 틀렸습니다.파이썬 중복값 제거를 위해서는 ..