본문 바로가기

Algorithm/Coding Test

2020 Dev-Matching: 웹 백엔드 코딩테스트 후기

https://programmers.co.kr/competitions/144/2020-web-be-first

 

2020 Dev-Matching: 웹 백엔드 개발자(상반기)

접수   20년 03월 30일 12:00 ~ 04월 17일 18:00 진행   20년 04월 18일 13:00 ~ 04월 18일 15:00

programmers.co.kr

 

 

[ALGORITHM]

[1번 문제]

숫자로만 이루어진 

Source 문자열과 Taget 문자열이 주어지며 두 문자열의 길이는 같을때

Source 문자열의 하나의 숫자를 1늘리는 연산과 1줄이는 연산이 있는데

연산의 횟수를 최소로하여 Source 문자열을 Target 문자열로 만들었을 때 

연산의 최솟값을 출력하는 문제였습니다.

 

[1번 풀이]

source 문자열과 target 문자열을 모두 한자리씩 자른후 늘이는 연산을 했을때

연산이 더 적은지 줄이는 연산을 했을때 연산이 더 적은지 비교하여 더적은 쪽의 값을

더하여 문제를 해결하였습니다.

 

 

 

 

 

[2번 문제]

로봇청소기가 먼지를 청소하는 문제였습니다.

로봇이 청소를 시작하는 위치와 전체 청소구역 크기와 청소구역의 장애물, 먼지정보

그리고 로봇의 현재위치를 입력받습니다. 로봇은 초기값으로 북쪽을 바라보고있을때

문자열을 통해 로봇을 움직이며 명령이 끝났을때 로봇청소기가 청소한 먼지의 총 합을

출력하는 문제였습니다.

 

[2번 풀이]

로봇이 이동하였을때 이동이 가능한 위치면 이동하고 이동할수 없으면 해당 명령을 취소

하는 함수를 작성하여 문제를 해결하였습니다.

 

[비슷한문제]

https://www.acmicpc.net/problem/13567

 

13567번: 로봇

문제 로봇은 명령어를 읽어들여 정사각형 영역 S를 x축 또는 y축과 평행한 방향으로 움직인다. S의 왼쪽 아래 꼭짓점은 (0, 0)이고, 오른쪽 위의 꼭짓점은 (M, M)이다. 처음에 로봇은 (0, 0)에 위치해 있고, 동쪽 방향을 향하고 있다. 명령어는 로봇이 현재 위치에서 행할 동작과 그 동작과 관련된 값으로 주어진다. 동작은 두 가지가 있는데, TURN과 MOVE이다. TURN 0 명령은 현재 위치에서 왼쪽으로 90도 회전, TURN 1 명령은 현재

www.acmicpc.net

 

 

 

 

 

 

[3번문제]

자연수 N개가 중복없이 들어있는 배열이 있을때  서로 다른 두 원소의 위치를 

바꾸는 Swap 연산을 이용해 원소들의 위치를 바꿔 서로 인접한 원소의 차가 K 이하가 

되도록 하는데 Swap 연산을 가장 적게 사용하였을때의 연산 횟수를 출력하는 문제였습니다.

 

 

[3번 풀이]

자연수 배열의 최대길이가 8로 매우 작아 모든 순서쌍을 구한후 인접 크기의 차이가

K이하인지를 검사하며 만약 K이하일 경우 입력배열에서 Swap을 몇번 사용해야지 해당

배열을 만들 수 있는지를 계산하여 풀었습니다.

 

 

 

[후기]

여러 기업들이 한번에 보는 코딩테스트라서 그런지 코테 자체의 난이도가 매우낮은 편이였습니다. 

알고리즘 3문제, SQL 1문제가 출제되었는데 전체문제를 푸는데 한시간 정도 걸렸습니다.

문제가 쉬우면 서류합격선이 높아지더군여..ㅠ

 

'Algorithm > Coding Test' 카테고리의 다른 글

2020 카카오 인턴십 코딩테스트 후기  (0) 2020.05.10