[코딩 테스트] 230214 불합격 회고

뒹귤·2023년 2월 14일
1

코딩 테스트

목록 보기
2/25

여러군데 이력서를 넣고 있는 중 감사하게도 코딩테스트를 볼 수 있는 기회가 생겼다. 불합격이라는 결과에도 불구하고 코드 피드백을 주셔서 코드를 다시 살펴보고, 더 나은 코드로 수정해보려고 한다.

[Q1]

[line 14] 아래에서 item을 넣을 값임에도 false 값으로 초기 값을 설정하시면 Javascript에서 동작에 문제가 있는 것은 아니지만, 해당 변수에 사용할 데이터 타입에 맞추어 초기 값을 설정해주는 것이 더 좋습니다.

let prevWordValue = false;

// 수정
// 이후에 숫자를 할당할 변수이기 때문에 초기 값을 숫자 타입으로 설정
let prevWordValue = 0;

[line 19, 26] 간단한 처리를 가진 조건을 상위에 배치하신 부분은 코드를 보다 빠르고 쉽게 이해할 수 있도록 도움을 주어 좋습니다.

if (item === 0) return null;
if (item === prevWordValue) return colorArr[count];

[line 19, 22] 현재 작성하신 형태로 서로 반대의 조건을 가진 2개의 if문을 작성하면 2번의 조건 검사를 수행하게 되기 때문에 if/else 문으로 처리하여 1번의 조건 검사 만을 수행하도록 하는 것이 더 좋습니다. 성능적인 부분 외에도 해당 조건을 수정하게 되었을 때 2개의 조건을 모두 수정해야 하기 때문에 유지/보수 측면에서도 좋지 않습니다.

if (item === 0) return null;
if (item !== 0) { ... }

// 수정
// 서로 반대의 조건일 경우 if/else 문으로 처리
if (item === 0) return null;
else { ... }

[Q2]

[line 30-32] split의 결과를 각 데이터가 잘 표현되는 변수에 저장하여 코드 가독성과 유지/보수에 있어 도움을 주어 좋습니다.

let splitRecord = item.split(" ");

let state = splitRecord[0];
let userID = splitRecord[1];
let name = splitRecord[2];

[line 27-55] 이중 반복문을 사용하여 닉네임 변경 시 마다 모든 닉네임을 바꾸는 형태인데, 최종적으로 변경된 닉네임을 확인하여 적용해주는 방법을 활용하시면 좀 더 낮은 복잡도의 로직으로 구현 가능합니다. (Javascript가 제공하는 기본 데이터 타입에 대해 알아보시면 이 부분에 활용하실 수 있는 데이터 타입이 있습니다)

✍️ 키-값을 저장할 수 있고, 저장된 순서대로 각 요소들을 반복적으로 접근할 수 있는 Map 객체 사용해서 다시 풀어보기!

profile
🌱 FE 

0개의 댓글