(아무리 간만에 하는 알고리즘이래도 난 진짜 아는 게 없구나. 이거 하나 못 풀다니 다시 처음부터 공부해야될 듯)
inputs = [1, 2, 3]
used = [False] * len(inputs)
def permutations(arr, n=0):
if n == len(inputs):
print(arr)
return
for i in range(len(inputs)):
if not used[i]:
used[i] = True
arr.append(inputs[i])
permutations(arr, n+1)
arr.pop()
used[i] = False
permutations([])
comment:
- 실제 코드 인터뷰에서는 인터뷰어가 실제 변수명을 직접 언급하지는 않는다. 힌트를 줄 때, 뭉뚱그려서 알려준다.
- 사람들이랑 얘기해보면서 코딩하기 연습을 많이 해봐라.
내가 궁금했던 질문
1. 코딩인터뷰할 때 라이브러리도 사용 가능한가요?
큐, 리스트, 스택 등의 기본적인 라이브러리는 사용 가능하다
sorting 라이브러리를 많이 사용하게 되는 데, insertion, bubble, heap, priority queue, quick, merge sort 등 유명한 정렬은 코딩할 수 있어야 어느 정도 레벨의 코딩 인터뷰에서 도움이 될 것이다. 연습은 하되 인터뷰에서 굳이 다 구현할 필요는 없다.
예를 들어, quick sort의 partition, heap 에서 priority queue로 넘어가는 경우, merge sort의 메모리에 노드가 다 들어가지 않을 경우 등의 개념들을 많이 이해하는 것이 현업과 인터뷰 둘 다에서 도움이 될 것이다.
학생 comment: 라이브러리를 사용한다면 그 원리를 제대로 이해하고 있는지 확인을 할 것 같습니다.
3일차
(나중에 옮겨적어야지...)
그냥 구글이래서 들었는데, 생각보다 알차고 얻은 게 많은 특강이었던 것 같다.
코드 인터뷰도 말로만 들었지 실제로 해볼 경험이 없었는 데, 연습할 수 있는 플랫폼과 모의였지만 실제로 해볼 기회도 있었고, 조교님의 코멘트로 어떤 식으로 코드 인터뷰를 준비해야할 지 등을 배울 수 있었다.