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
반응형
728x90
반응형

프로그래머스 연습문제

 

안녕하세요 :) 

오늘 가지고 온 문제는 카카오 인턴십 문제입니다. 

카카오 문제 치고 굉장히 쉬운 편에 속하는데요, 저는 좀 지저분하게 풀었습니다

문제 링크
 

코딩테스트 연습 - 키패드 누르기

[1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL"

programmers.co.kr

 

문제에 나온 조건에만 맞추면 되는 쉬운 문제였습니다 ㅎㅎ 아래에 바로 코드 올려요!

from collections import deque
def checkLeft(num):
    possible = ['1', '4', '7', '2', '5', '8', '0']
    if num in possible:
        return True
    return False
def checkRight(num):
    possible = ['2', '5', '8', '0', '3', '6', '9']
    if num in possible:
        return True
    return False

def solution(numbers, hand):
    answer = ''
    numbers = deque(numbers)

    pads = {'1': (0, 0), '2': (0, 1), '3': (0, 2),
            '4': (1, 0), '5': (1, 1), '6': (1, 2),
            '7': (2, 0), '8': (2, 1), '9': (2, 2),
            '*': (3, 0), '0': (3, 1), '#': (3, 2)}
    
    left = pads['*']
    right = pads['#']
    for num in numbers:
        num = str(num)
        if checkLeft(num) and not checkRight(num):
            answer  += 'L'
            left = pads[num]
        elif not checkLeft(num) and checkRight(num):
            answer += 'R'
            right = pads[num]
        elif checkLeft(num) and checkRight(num): 
            leftDist = abs(pads[num][0] - left[0]) + abs(pads[num][1] - left[1])
            rightDist = abs(pads[num][0] - right[0]) + abs(pads[num][1] - right[1])
            if leftDist < rightDist:
                answer += 'L'
                left = pads[num]
            elif rightDist < leftDist:
                answer += 'R'
                right = pads[num]
            elif rightDist == leftDist:
                if hand == 'right':
                    answer += 'R'
                    right = pads[num]
                if hand == 'left':
                    answer += 'L'
                    left = pads[num]
    return answer

좀 지저분하긴 하네요..

 

그럼 이만 ㅎㅎ

728x90
반응형
728x90
반응형

프로그래머스 문제

 

안녕하세요! 왠지 오늘은 하나 더 풀고싶어서 풀어봤습니다!

프로그래머스에서 진행한 월간코드첼린지라는 게 있더라구요. 여기서 기출한 문제입니다.

문제링크

 

이 문제도 어렵지 않았는데, 파이썬으로 풀면 정말 쉬운 문제 유형인 것 같습니다.

중복 제거용으로 set 써주었고 sort 사용하여 정렬까지 해 주었습니다.

def solution(numbers):
    answer = []
    n2 = numbers.copy()
    for i in range(len(numbers)):
        for j in range(len(numbers)):
            if i == j:
                continue
            answer.append(numbers[i] + numbers[j])
    answer = list(set(answer))
    answer.sort()
    return answer

그럼 이만~!

728x90
반응형
728x90
반응형

프로그래머스 연습문제 올바른 괄호

올바른괄호 문제링크

조건 두면서 확인해가는 문제였습니다.

먼저 처음에 ')' 가 들어오면 False를 return 하도록 하고, 두 짝을 cnt 변수로 확인했습니다.

def solution(s):
    answer = True
    
    cnt = 0
    if s[0] == ')':
        return False
    for ch in s:
        if cnt == 0 and ch == ')':
            return False
        if ch == '(':
            cnt += 1
        if ch == ')':
            cnt -= 1
    if cnt != 0:
        return False

    return True

오늘은 이걸로 ㅎㅎ 

이만 :)

728x90
반응형
728x90
반응형

프로그래머스 Level 2 스킬트리

코테 준비는 조금 귀찮지만 그래도 꾸준히 하지 않으면 실력을 다 잃어버리는 것 같아서 하루에 한 문제라도 꾸준히 다시 풀려고 합니다!

문제 링크  programmers.co.kr/learn/courses/30/lessons/49993
 

코딩테스트 연습 - 스킬트리

 

programmers.co.kr

 

from collections import deque
def solution(skill, skill_trees):
    answer = 0
    for item in skill_trees:
        dq = deque(skill)
        for s in item:
            if s in skill:
                if s != dq.popleft():
                    break
        else:
            answer += 1
                
    return answer

 

보통 python으로 문제를 풀 때 자료구조로 deque 를 많이 쓰게 되는 것 같습니다.

오늘은 진짜 오랜만에 간단하게.. 한 문제 풀기 :)

 

그럼 이만!

728x90
반응형
728x90
반응형

전형 포기의 이유..

 

딱 일주일 전이 하나금융티아이 신입 공채 1차 면접날이었습니다. 

2020/08/29 - [취업해] - 하나금융티아이 필기시험(코딩테스트) 후기

요 글에서 볼 수 있듯이 코딩테스트 통과하고 면접 일자가 잡혀서 매우 행복했었죠...

 

하나금융티아이 필기시험(코딩테스트) 후기

하나금융티아이 코딩테스트 지난주 금요일(21일) 하나금융티아이에서 온라인 코딩테스트를 봤습니다. 한 3주 전쯤이었나.. 인성검사를 봤고, 코딩테스트는 이렇게 따로 보게 하더라고요! 다른 ��

haonly.tistory.com

 

그러나 저는 면접에 안가게 되었는데요...

사실 저는 8월 말 취업하여 직장에 다니고 있습니다. 

그런데 누구나 조금 더 나은 환경을 원하잖아요? 그래서 저도 계속해서 도전하고 시험 보고, 공부했던 겁니다 ㅎㅎ

(지금 다니는 회사도 나쁘지는 않지만 저는 원하는 목표가 있기 때문에 계속 준비하고 있어요!)


아무튼! 회사에 다니고 있는데 하필 면접 일자와 중요한 발표 날짜가 겹쳐버린 겁니다...

코XX 때문에... 면접이 2주가량 미뤄졌는데 미뤄지기 전 면접일은 토요일이었지만.. 미뤄진 면접일은 금요일.. 따흑... 진짜...

 

중요한 발표가 마음에 걸려 하나금융티아이 면접을 갈지 말지 고민하다가 면접 일자를 미뤄줄 수 없겠냐고 메일을 보내게 됐습니다....!

그런데 다음날이 되도록 답장이 오지 않아 카톡 플러스친구로 문의까지 남겼죠.


그런데 면접 전날이 되도록 답변을 받을 수 없었습니다ㅠㅠㅠ 결국 '그래.. 여기(지금 다니는 회사)서 존버하다가 준비해서 재취업 하자..ㅠㅠ'라는 마음으로 면접을 포기해야지! 하는데, 카톡을 받게 됩니다. 

아니 근데,, 일처리 왜 이렇게 느리냐고,, 

ㅎㅎ 그래서 전형을 포기하게 되었습니다~! 


사실.. 하나금융티아이도 굉장히 좋은 회사고 경력 개발하기에 정말 좋아 보입니다. 

그런데 저는 하나금융티아이에 들어간다고 하더라도 다른 회사로의 재취업을 꿈꾸게 될 것 같았습니다. 

어차피 재취업 하게 될 것... 회사를 옮겨 다니기보다 한 곳(지금 있는 곳)에 있으며 능력 쌓아서 옮기는 것이 조금 더 쉬울 것 같다는 생각이 들어 마음 놓고 전형을 포기하게 된 것 같습니다. 

나중에 지금 있는 회사에서 힘들 때 '아.. 그 때 면접 볼 걸!' 이러면서 후회할 것 같습니다. 하지만 지금 내릴 수 있는 결정 중 가장 알맞은 결정을 했다고 생각합니다. 


그래도 마음은 조금 싱숭생숭합니다. 취업은 정말 어렵습니다. 

마음도 갉아먹고.. 자존감도 정말 많이 낮아지고.. 그만큼 예민해지니 사람들과의 관계에서도 실수를 할 때가 있는 것 같습니다. 

보통 힘내자, 이겨내야지 하는데 이제는 이겨내기보다는 '내가 지금 힘들구나' 하고 있습니다. 

 

그럼 이만.

728x90
반응형

+ Recent posts