0.오늘은 대전에서 서울까지 올라가 면접을 당일치기로 보고왔기 때문에 강의 및 과제도 진행하지 못했다.

면접에 대한 내용은 회고보다는 일기에 어울린다고 생각되고 일기에 면접 내용을 작성해도 괜찮은지 물어보고 허락도 받았지만

받은 질문들을 나열하는 것은 문제가 있다고 생각해(정리를 해두기는 했다) 내가 한 질문들 위주로만 일기에 작성할 예정이다.

 

 

1.request에서 Accept는 유저 에이전트에서 처리할 수 있는 내용과 우선순위를 전달하는 용도로 사용된다.
text도 html, css, 등이 있고 image도 png, gif, jpeg가 있는 것 처럼 특정 기능이 작동하지 않아 대안을 요청하거나 선호에 따라 우선순위를 부여한다.

우선순위의 구분은 ';'를 통해 기입하며 0~1 사이의 소숫점 3자리까지의 숫자로 표현할 수 있으며 1이 max의 선호도라고 볼 수 있다.


2.Accept-Charset은 문자셋 선호도 요청으로 일반 Accept와 비슷하게 ';'와 0~1의 소숫점 3자리까지의 숫자로 선호도를 기입해 사용할 수 있다.


3.Accept-Encoding은 Accept들의 공통적인 우선순위 구분방식을 따르며
gzip, compress, deflate, identity방식의 인코딩 포맷이 있다.


4.DFS/BFS는 스택 또는 재귀를 이용해 문제를 해결해야 하는데 
이 부분이 중요하다..
실제로 며칠 전 진행했던 코딩테스트에서는 재귀만을 떠올려 문제를 해결하고
정확도 및 효율성도 우수한 속도로 처리되었지만 효율성 3분의2정도가 callstack문제로 터져버렸다.

오늘 진행된 면접에서도 재귀를 좋아하시는 것 같다며 다른 방법으로 해결할 생각은 안해봤는지에 대한 질문을 들었고
BFS/DFS를 볼 때 마다 재귀를 사용하면 문제가 해결된 경험밖에 없었기 때문에 다른 방식을 떠올리지 못했다는 사실이 아쉬웠다.

다행히 면접관님께서는 다른 방식을 설명해주셔서 바로 이해하고 DFS로 최하단 리프노드까지 내려가야 하니 스택의 사용이 필요함을 내가 먼저 언급하며 그 부분에 대해서도 해결은 할 수 있지만 떠올리지 못했다는 사실은 어필했지만 그럼에도 해결하지 않고 종료시간 전 추가적 해결을 하지 않고 조기 종료한 부분은 많이 아쉬웠다.

인접행렬로 진행할 경우에는 당연히 정점의 갯수의 제곱한 O(V^2)가 되며 인접리스트인 경우는 O(V+E)가 된다.(E는 간선의 갯수)

BFS는 DFS와는 다르게 루트에서 인접한 노드들을 먼저 탐색하기 때문에 스택이 아닌 큐로 순차적으로 진행하는 차이점이 있고 시간복잡도는 동일하게
인접 행렬은 O(V^2), 인접 리스트는 O(V+E)의 시간복잡도를 가진다.



 


(1).백준 2783 삼각김밥은 중간에 함정(혼자 규칙이 다름)이 숨어있는 데이터를 continue로 무시하고 필요무게*금액/그램을 비교하는 방식으로 해결했다.

let input = `13 6
5
56 679
35 120
99 999
56 73
37 532`.split('\n')

let result = []
for(let i = 0 ; i < input.length ; i++){
    if(i === 1){
        continue
    }
    let [a,b] = input[i].split(' ').map(Number)
    result.push(1000*a/b)
}
console.log(Math.min(...result))

 

'회고' 카테고리의 다른 글

[취업준비일지] - 13  (0) 2022.11.02
[취업준비일지] - 12  (0) 2022.11.01
[취업준비일지] - 10  (0) 2022.10.30
[취업준비일지] - 9  (0) 2022.10.29
[취업준비일지] - 8  (0) 2022.10.28

+ Recent posts