본문 바로가기
취업/후기

[라인] 2022 상반기 신입 공개 채용 코딩 테스트 후기(합격)

by Better Me 2022. 5. 9.
3월 26일
10:00~13:00
6문제/3시간
사용 가능한 언어 : C++, Java, JavaScript, Kotlin, Python3, Swift

인터넷 검색 가능

외부 IDE 사용 및 복봍 가능

후기

히든 테스트 케이스가 있어서 풀면서 엣지 케이스를 생각하면서 풀어야 했다.

나는 C++을 이용해서 풀었다. 문자열 문제가 많았지만 C++의 string 라이브러리를 적당히 활용해서 풀 수 있었다.

1,2는 그렇게 어렵지 않았고, 3,4,5는 내가 생각한 로직이 엣지 케이스에도 적용되는지 잘 생각하면서 풀었다.

6번은 못봤다ㅠ

1. 문자열 문제

substr과 find를 활용해서 풀었다.

 

2. 문자열 문제

set을 활용했다.

로직

A문장을 만들 때 필요한 것들을 set에 넣고, B문장을 만들 때 필요한 것을 set에 넣은 후 merge를 통해 하나의 set으로 만들었다.

중간 중간 띄어쓰기나 대문자를 만들기 위한 예외 처리를 넣었다.

회고

set을 처음 써봤는데 여러 유용한 기능이 있어 좋았다. 특히 merge가 굉장히 유용했다. 

set을 쓰지 않았다면 로직이 더 꼬여졌을 듯하다. 1,3번보다 어려웠음!ㅠㅠ

아쉬운 점 1. set을 썼는데 unordered_set을 쓰기

아쉬운 점 2. 대문자를 위한 예외처리도 한 set에 넣어서 구현하기

 

3. 문자열 문제

string 라이브러리의 find를 이용했다

로직

어떤 사원이 어느 팀인지 저장 (사원으로 팀을 찾을 수 있게)

담당하는 업무 종류를 find로 확인하고, type을 넣는 vector에 update

특정 type 업무를 담당하는 사원이 팀당 한명씩 있는지 확인 후, 없으면 제일 막내가 해당 업무 담당하도록 update

 

회고

1번과 비슷한데 로직이 한번 더 들어갔다.

2번보다 쉬웠다. 

 

4. DFS

dfs + pruning 활용

로직

우선권을 쓰는 경우(1), 쓰지 않는 경우(0)으로 dfs를 구현했다.

우선권이 떨어지는 경우 pruning했다

 

회고

어떤 로직이 답을 찾을 수 있을지, 시간 초과는 나지 않을지 고민하는 시간이 길었다.

전체 경우를 탐색해야한다고 생각했고, dfs + pruning을 활용했다.

시간 초과.. 안나겠지?

 

5. GREEDY

무조건 오른쪽 칸을 옮기는 방법으로 GREEDY하게 구현

로직

linear하게 배열을 지나가면서 i와 i+1을 조정했다.

 

회고

시간이 얼마 남지 않아서 깊게 생각하진 못했다.

문제가 잘 기억은 안나서 뭐가 맞는지 확인할 수 없는게 아쉽다..

당시에는 반신반의하면서 구현했고 보여지는 정확도 테스트는 모두 통과했다.

 

5. GREEDY

무조건 오른쪽 칸을 옮기는 방법으로 GREEDY하게 구현

로직

linear하게 배열을 지나가면서 i와 i+1을 조정했다.

 

회고

시간이 얼마 남지 않아서 깊게 생각하진 못했다.

문제가 잘 기억은 안나서 뭐가 맞는지 확인할 수 없는게 아쉽다..

당시에는 반신반의하면서 구현했고 보여지는 정확도 테스트는 모두 통과했다.

 

 

 

결과

3.30 15:00에 메일로 통보

댓글