| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- jpa
- 스프링
- BACK-END
- 자바스크립트
- 미니정리
- SQL
- 백엔드
- spring
- web
- 정리
- 코드테스트
- 코드 테스트
- 쿼리
- 서버
- jsp
- 스프링부트
- 오라클
- 데이터베이스
- java
- Next.js
- 디자인 패턴
- 프론트엔드
- 알고리즘
- JavaScript
- 프런트엔드
- MySQL
- 프로그래머스
- node.js
- 자바
- oracle
- Today
- Total
참치코더의 꿈 메모장
알고리즘 73일차 - 프로그래머스 기출 문제(JAVA) / 체육복 본문

- 매개변수 로 받은 n은 총인원수, 배열 lost는 체육복을 잃어버린 학생 번호, reserve는 체육복을 빌려줄수 있는 학생이라고
했을때 체육복을 빌려서 총 수업을 받을 수 있는 학생수는 몇명인지 계산하는 문제이다.
- List로 계산하기 위해 각각 배열들을 List 컬렉션으로 바꿔 집어넣어 준 다음 여벌 체육복을 가져온 학생이 도난당했을때
for in문을 사용하여 임시 list 컬랙션에다가 해당하는 값을 집어넣어 주었다.
- 그 후 해당하는 imsi 컬랙션에 해당하는 학생은 체육복을 빌려줄 수 도 내가 수업을 듣지 못하는 것도 아니니 양 List에서
해당하는 학생들을 제거해 주었다.
- 다음 정렬을 하지 않았을때 순서가 들쭉날쭉 해져서 이어지는 체육복을 빌려주는 쿼리에서 오류가 날 가능성이 있으므로
해당하는 reserve와 lost의 리스트를 정렬을 해주었다.
- 이렇게 한다면 순수하게 빌릴 학생과 빌려줄 학생만 남게 되는데 체육복이 없는 학생의 번호 위아래로 밖에 빌리지를
못하므로 조건문을 사용하여 빌려줄 해당 학생이 존재한다면 해당 학생이 체육복을 빌려줌으로써 해당하는 번호의
lost_list의 값을 제거해주었다.
- 최종적으로 lost_list에 남는 인원은 체육복을 빌리지 못해 수업을 듣지 못하는 인원만 남게 되므로 해당하는 인원을
총 인원인 n 값에서 lost_list( ) 인원 수 만큼 제거한다면 총 수업을 받을 수 있는 인원만 구할 수 있다. ^^
* Hash Set을 이용한다면 더욱 효율좋은 프로그램이 된다던데, List 위주로 코드를 짜다보니 코드가 길어졌다.
다음 알고리즘은 Hash 공부한뒤 Hash위주의 Collection 문제풀이를 해봐야 겠다..... ㅎㅎ
https://school.programmers.co.kr/questions/89399
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

'잡다한 웹지식' 카테고리의 다른 글
| 알고리즘 75일차 - 프로그래머스 기출 문제(JAVA) / 문자열 내 마음대로 정렬하기 (1) | 2025.07.17 |
|---|---|
| 알고리즘 74일차 - 프로그래머스 기출 문제(JAVA) / 모의고사 (1) | 2025.07.16 |
| 알고리즘 72일차 - 프로그래머스 기출 문제(JAVA) / 하샤드 수 (1) | 2025.07.14 |
| 알고리즘 71일차 - 프로그래머스 기출 문제(JAVA) / 두 개 뽑아서 더하기 (1) | 2025.07.13 |
| 알고리즘 70일차 - 프로그래머스 기출 문제(JAVA) / 크기가 작은 부분 문자열 (4) | 2025.07.12 |