[js] 문제 푸드파이트&최소공배수

2024. 5. 1. 20:12카테고리 없음

ㅡ &

 

 

 

 

내가 본 위 문제의 핵심은 둘이 나눠먹는다는 것 이다.

food 의 0번 인덱스는 물의 개수로 항상 1이니 세는 것에서 제외 ( i 를 1로 설정 )

해당 인덱스의 음식 개수를 2로 나누어 정수로 변환한다. parseInt(food[i]/2) 

배열에 해당 인덱스의 음식개수를 2로 나눈만큼 인덱스를 추가한다.

위 과정을 수행하면 내가 먹을 수가 배열되니 중앙에 0 (물)을 배치하고 뒤집어서 상대에게도 배치해준다. 

 

 

 

 


 

 

위 문제를 풀기위해선 최소공약수와 최소공배수를 구하는 법을 알아야한다.

최대공약수는 유클리드 호제법을 통해 알아내고

최소공배수는 두수를 곱한뒤 최대공약수로 나눠주면된다.

 

유클리드 호제법 예시

 

내가 이해한 유클리드 호제법은 나눈 두수를 두고 나눈 몫을 나머지로 0이 나올때 까지 나누는 것이다.