반응형
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 네트워크
- 알고리즘
- Elasticsearch
- DPDK
- 프로그래머스 #카카오 #IT #코딩테스트
- programmers
- Java
- 운영체제
- 도커
- Spring
- IT
- 엘라스틱서치
- Kakao
- 카카오
- 쿠버네티스
- 파이썬
- 프로그래머스
- Linux
- 자바
- 백엔드
- 스프링부트
- Python
- 리눅스
- 코딩테스트
- 스프링
- 캐시
- C
- springboot
- 개발자
- docker
Archives
- Today
- Total
저고데
[프로그래머스]체육복 본문
728x90
반응형
문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42862
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제를 간단히 요약하면 다음과 같다.
체육복이 없는 인원이 담긴 lost 배열과 여별의 체육복을 가진 인원이 담긴 reverse 배열, 인원 수가 담긴 정수 n이 주어진다.
여벌의 체육복이 있는 인원이 체육복이 없는 인원에게 체육복을 빌려줄 수 있다.
하지만 각 번호에서 +-1을 한 숫자에게만 체육복을 빌려줄 수 있을 때, 최대 몇 명이 체육복을 입을 수 있는지 반환해야한다.
코드를 작성하기 위한 순서는 다음과 같다.
1. 문제에서 여벌 옷이 있는 학생도 잃어버린 명단에 있을 수 있다라고 명시되어 있기 때문에 중복된 값을 제거해준다.
2. 잃어버린 사이즈에서 +1을 먼저 비교하는 것보다 -1을 먼저 비교해야 최대한 많은 인원에게 체육복을 빌려줄 수 있기 때문에, -1을 한 값이 있는지 비교한 후, +1을 한 값이 있는지 비교한다.
3. 둘 다 해당하는 값이 없다면 체육복을 빌려줄 수 없기에 전체 인원에서 -1을 해준다.
def solution(n, lost, reserve):
new_lost = set(lost) - set(reserve) #1번
new_reserve = set(reserve) - set(lost) #1번
for i in new_lost:
if i - 1 in new_reserve: #2번
new_reserve.remove(i - 1)
elif i + 1 in new_reserve:
new_reserve.remove(i + 1)
else: #3번 : 체육복을 빌려줄 수 없는 상황
n-=1
return n
해당 문제는 '여벌 옷이 있는 학생도 잃어버린 명단에 있을 수 있다.'라는 내용을 꼭 알아야 풀 수 있는 문제였다.
728x90
반응형
'프로그래머스' 카테고리의 다른 글
[프로그래머스]큰 수 만들기 (1) | 2023.01.20 |
---|---|
[프로그래머스]가장 큰 수 (0) | 2023.01.20 |
[프로그래머스]실패율 (0) | 2023.01.19 |
[프로그래머스]두 큐 합 같게 만들기 (1) | 2023.01.19 |
[프로그래머스]징검다리 건너기 (0) | 2023.01.19 |