javascript vs python
프로그래머스 - 체육복
https://programmers.co.kr/learn/courses/30/lessons/42862
javascript로 풀었던 것을 python으로 다시 구현하는데
javascript에서는 생각안해도 됐었던 array 범위 문제가 python에서 생겨서 수정해서 풀었다.
첫번째 index와 마지막 index에서 앞뒤사람 여분유무 체크할 때 예외사항을 처리해줬다.
function solution(n, lost, reserve) {
var answer = 0;
let studentInfo = [];
for (let i = 0; i < n; i++) // 체육복유무 확인을 위한 배열 초기화
studentInfo[i] = 1;
for (let i = 0; i < lost.length; i++) // 체육복없으면 --
studentInfo[lost[i] - 1]--;
for (let i = 0; i < reserve.length; i++) // 여벌있으면 ++
studentInfo[reserve[i] - 1]++;
for (let i = 0; i < studentInfo.length; i++) {
if (studentInfo[i] == 0) { // 체육복이 없으면
if (studentInfo[i - 1] == 2) { // 이웃번호에게 빌린다
studentInfo[i - 1]--;
studentInfo[i]++;
} else if (studentInfo[i + 1] == 2) {
studentInfo[i + 1]--;
studentInfo[i]++;
}
}
if (studentInfo[i] != 0)
answer++;
}
return answer;
}
def solution(n, lost, reserve):
answer = 0
studentInfo = [1 for i in range(n)]
for i in range(len(lost)):
studentInfo[lost[i] - 1] -= 1
for i in range(len(reserve)):
studentInfo[reserve[i] - 1] += 1
for i in range(len(studentInfo)):
if studentInfo[i] == 0:
if i == 0:
if studentInfo[i + 1] == 2:
studentInfo[i + 1] -= 1
studentInfo[i] += 1
elif i == len(studentInfo)-1:
if studentInfo[i - 1] == 2:
studentInfo[i - 1] -= 1
studentInfo[i] += 1
else:
if studentInfo[i - 1] == 2:
studentInfo[i - 1] -= 1
studentInfo[i] += 1
elif studentInfo[i + 1] == 2:
studentInfo[i + 1] -= 1
studentInfo[i] += 1
for i in range(len(studentInfo)):
if studentInfo[i] != 0:
answer += 1
return answer