1 minute read

코딩 테스트 준비

#코딩테스트 #단순구현 #implementation

  1. 코딩 테스트 준비1

    기본 코딩 테스트는 주로 문제의 내용을 코드로 구현 가능한지 테스트한다.

    • 문제 풀이에 시간 제한이 없는 경우가 많기 때문에 시간 복잡도를 생각하지 않고 풀어보는 것이 좋다.
    • 완전탐색 중에서도 2차원 배열의 탐색, 델타 탐색 등 선형 탐색이 주를 이룬다.
    • 삼성 SW역량테스트 IM 시험이 대표적인 예시이다.
  2. 단순 구현 (Implementation)

    문제에 제시된 풀이 과정을 그대로 구현하는 유형이다.

    • 시뮬레이션의 경우 완전탐색 유형 중 하나, 모든 경우의 수를 탐색하여 풀이한다.
    • 아이디어나 알고리즘을 요구하기 보다는, 문제에 제시된 과정을 그대로 구현할 수 있는가가 핵심
    • 삼성 SW역량테스트 IM,A형에서 주로 출제된다.

    단순 구현 연습_백준 _ 킹 문제

    델타 값을 이용한 탐색과 아스키코드를 사용한다. 단순 구현 문제이므로, 문제에 제시된 동작을 그대로 구현하면 된다. (제한시간 40분 이상)

    • 상하좌우_대각선의 8방향 델타값을 이용한다.

      # 8방향 델타값
      directions = {
      	"R": (0, 1),
      	"L": (0, -1),
      	"B": (1, 0),
      	"T": (-1, 0),
      	"RT": (-1, 1),
      	"LT": (-1, -1),
      	"RB": (1, 1),
      	"LB": (1, -1),
      }
      
    • 아스키코드를 이용해 체스판 위치를 좌표로 변환한다.

      k, s, n = input().split()
           
      kx, ky = 8 - int(k[1]), ord(k[0]) - 65 # king x, y
      sx, sy = 8 - int(s[1]), ord(s[0]) - 65 # stone x, y
      

      ord()는 특정 문자를 아스키코드로 변환하는 파이썬 내장 함수이다.

      65는 아스키코드에서 ‘A’를 나타내므로, 이를 빼서 열의 좌표값을 구한다.

    DFS 방식으로 출발점, 도착점 경로 문제 자주 나온다

    출발      
     
    도착
    # 입력
    5 5
    0 0 0 0 0
    1 0 1 1 1
    0 0 1 1 1
    1 0 0 0 0
    1 1 1 1 0
       
    # 출력 (출발점 -> 도착점 경로)
    >>> [(0, 0), (0, 1), (1, 1), (2, 1), (3, 1), (3, 2), (3,3), (3, 4), (4, 4)]
    
    visited = [[False] * m for _ in range(n)]
    
    False False False False False
    False False False False False
    False False False False False
    False False False False False
    False False False False False

Updated: