본문 바로가기

TIL ( CODESTATES)

백엔드 개발자 면접 후기 (직무수행능력평가) - 1편

지난 7월 초 부산 해운대구에 있는 한 기업에 백엔드 개발자로 면접을 보러 갔었다.

직무 수행 능력 평가와 기술 면접을 보았고 결과적으로 함께하지는 못하게 되었다.

진작에 후기를 남기고 싶었지만 다른 곳에서 면접 요청이 와서 준비하느라 이제야 글을 좀 적어본다.

 

 

1. 진수 변환하기

진수 변환

  • 11101(2)의 10진수는?
  • (1*2^4) + (1*2^3) + (1*2^2) + (0*2^1) + (1*2^0) = 16+8+4+0+1 = 29

여기서는 2진수와 10진수 간 진수 변환에 대해서 알아보았지만 예를 들어 8진수로 변환할 경우 2 대신 8을 넣으면 된다.

 

 

  • 21(10)의 2진수는?

 

 

wiki

현대인들이 주로 사용하는 진법은 10진법으로 대부분의 숫자들은 모두 10진법으로 표기된다. 그러나 컴퓨터와 같이 비교적 간단한 표기 체계가 필요한 분야에서는 2진법도 유용하게 사용되고 있으며, 시간 표기나 각도 측정 등에서는 60진법이 이용되는 등 현대 사회에서는 다양한 진법이 복합적으로 응용된다.

 

2진법

2진법은 두 종류의 숫자만을 이용하여 수를 나타내는 수 체계이다. 관습적으로 0과 1의 기호를 쓰며 이들로 이루어진 수를 2진수라고 한다. 2진법은, 두 가지의 숫자만을 이용한다는 특징 때문에 논리적인 이분법과 잘 맞아떨어져 논리와 관련된 상당 부분의 수학적 표현이 2진법으로 이루어질 수 있다. 현대의 컴퓨터도 이러한 2진법의 특성을 잘 이용한 예이다.

 

2진법과 논리 연산

표기 숫자가 0과 1 두 가지밖에 없다는 특징 때문에 2진법은 참(True)과 거짓(False)을 나타내는 방식으로도 사용된다. 일반적으로 참(True)는 1로, 거짓(False)은 0으로 표시한다. 논리 연산은 몇 개의 2진수로 표기된 참과 거짓을 입력으로 받아들인 다음 특정한 방식의 연산을 수행하여 하나의 결과를 다시 참과 거짓을 의미하는 이진수 0 또는 1로 출력하는 것을 의미하며, 대표적인 연산으로는 AND, OR, NOT 연산 등이 있다.

 

 


 

2. 이산 수학

'연달아 1이 적히지 않는 표현식' 을 고르라는 문제였던 것 같은데 기본 개념을 몰라서 공부하기도 쉽지 않네..

 

#이산수학불연속표현식 #이산수학표현식

 

등으로 검색해봤지만 알기가 어렵다. 궁금하다. 팔뚝에라도 적어올걸. 뭐였지 대체??

 

 

 


 

 

3. 배열과 리스트의 차이

나는 다음과 같이 서술했다.

'배열의 요소를 element라고 하고 0부터 시작하는 index를 가진다. 리스트는 요소를 node라고 부르며 인덱스를 가지지 않는다. 배열은 인덱스를 통해 바로 조회할 수 있어서 O(1)의 시간복잡도를 가지지만 리스트는 처음부터 조회해야하기 때문에 O(n)의 시간복잡도를 가진다. 배열은 중간에 값을 추가하거나 삭제할 수 없지만 리스트는 가능하다.' 

 

다음과 같은 내용이 추가되었다면 좋았을 것 같다.

  • 리스트는 임의의 지점에 자료를 삽입하거나 삭제할 때 O(1)의 시간복잡도를 가진다.
  • 배열에서 인덱스는 중간에 값이 추가/삭제되어도 뒤에 있는 값들의 인덱스 값이 변하지 않는 고유한 값이다. 하지만 리스트에서 인덱스는 변경될 수 있기 때문에 식별자로서의 역할을 하지 못하지만, 배열과 달리 빈틈없이 데이터를 저장할 수 있다는 특징이 있다.
  • 따라서 리스트는 크기가 동적인 자료구조라고 할 수 있다.

 

 


 

4. byte -> bit 계산 문제

 

byte

바이트(byte)는 컴퓨터의 기억장치의 크기를 나타내는 단위로 자주 쓰이며, 많은 프로그래밍 언어에서 정수형에 속하는 자료형이기도 하다. 바이트의 실질적 의미는 ASCII 문자 하나를 나타낼 수 있다는 것이다. 따라서 여러 바이트를 한 워드로 사용하고 있는 현재에도 대부분의 컴퓨터 하드웨어에서 메모리의 주소 단위로 사용된다.

 

 

정한 개수의 비트로 이루어진 연속된 비트열. ‘일정한 개수’가 항상 정해진 건 아니지만, 최근에는 사실상 1바이트를 8비트로 간주하는 경우가 흔하다. (즉, 1byte = 8bit)

 

 

byte 크기 분류