코딩해/코테준비
[라인플러스] 2019 상반기 인턴 코딩테스트 문제(Python)
haonly
2020. 10. 13. 17:27
728x90
반응형
라인플러스 2019 상반기 인턴 채용 코딩테스트
2019년 상반기 LINE 인턴 채용 코딩테스트 문제 해설 - LINE ENGINEERING
LINE에서 개발 직군을 뽑을 때 신입이든 경력이든 가장 먼저 보는 것이 코딩 테스트입니다. LINE의 코딩 테스트는 일반적인 알고리즘 경진대회와는 경향이 조금 다른데요. 알고리즘 경진대회는 1��
engineering.linecorp.com
from collections import deque
def solution(conyPosition, brownPosition):
time = 0
visit = [[0]*2 for _ in range(200001)]
q = deque()
q.append((brownPosition, 0))
while 1:
conyPosition += time
if conyPosition > 200000 or conyPosition < 0:
return -1
if visit[conyPosition][time%2]:
return time
for i in range(0, len(q)):
current = q.popleft()
currentPosition = current[0]
newTime = (current[1]+1)%2
newPosition = currentPosition - 1
if newPosition >= 0 and not visit[newPosition][newTime]:
visit[newPosition][newTime] = True
q.append((newPosition, newTime))
newPosition = currentPosition + 1
if newPosition < 200001 and not visit[newPosition][newTime]:
visit[newPosition][newTime] = True
q.append((newPosition, newTime))
newPosition = currentPosition * 2
if newPosition < 200001 and not visit[newPosition][newTime]:
visit[newPosition][newTime] = True
q.append((newPosition, newTime))
time += 1
728x90
반응형