- 문제
- 간단한 문제 설명
학생 수, 체육복이 없는 학생번호, 여벌을 챙겨온 학생번호가 주어진다. 체육복이 없는 학생은 자신의 학생번호 앞과 뒤의 학생번호 학생에게서 체육복을 빌릴 수 있다. 여벌을 챙겨온 학생만 체육복을 빌려줄 수 있다. - 내 코드
- 내 코드 설명
학생 수 + 2 크기의 정수형 배열을 만들고 맨 앞과 맨 뒤 요소에 최소 정수값을 넣는다. 학생번호와 배열의 인덱스를 일치시켜 로직을 수월하게하고, 배열 요소의 앞과 뒤를 탐색할 때 조건문을 줄이기 위함이다.
인덱스 1부터 학생 수 만큼 배열의 요소에 1을 넣고, 체육복이 없는 학생은 1을 빼고, 여벌을 챙겨온 학생은 1을 더한다. 문제 조건에 여벌을 챙겨온 학생이 체육복을 안가져올 수 있는 경우도 있기에 배열 요소에 특정값을 넣지 않고 요소의 값을 더하거나 빼는 식으로 조건에 따른 정보를 만들었다.
배열 요소를 처음부터 끝까지 탐색하는데, 해당 요소의 값이 0인, 즉 체육복을 챙겨오지 않는 학생이면 앞과 뒤의 학생이 여벌을 챙겨와 요소의 값이 2인지 확인하여 체육복을 챙겨오지 않은 학생 번호(인덱스)의 배열 요소에 1 증가시키고 여벌을 챙겨온 학생은 1 감소시킨다. 이 과정이 끝나면 해당 요소의 값이 1 이상인, 즉 체육복을 입고 체육 수업에 참여할 수 있는 학생 수를 카운트한다.
gym_clothes
Folders and files
Name | Name | Last commit date | ||
---|---|---|---|---|
parent directory.. | ||||