본문 바로가기

Job Wanted/코테 - 프로그래머스

[프로그래머스] 코딩테스트 연습 > 코딩테스트 입문 > 캐릭터의 좌표

728x90
반응형

오래동안 앓던 이가 빠진 느낌이다. 정말 오랫동안 방치해놨었다. 단 한개의 테스트 케이스 때문에.

결국에는 예외 처리를 해서 끝냈다.

 

 

내가 작성한 정답 ::

테스트케이스 8번이 계속 문제였는데, 8번은 보드의 사이즈를 제대로 고려하지 않아서 생긴 문제였다. 

 

def solution(keyinput, board):
    
    xCo = 0
    yCo = 0
    xSize = int((board[0] -1) / 2)
    ySize = int((board[1] -1) / 2)
    
    print(xSize, ySize)
    
    
    for inp in keyinput:
        if inp=="left":
            if abs(xCo) < xSize :
                xCo -= 1
            elif xCo == xSize :
                xCo -= 1
        elif inp=="right":
            if abs(xCo) < xSize :
                xCo += 1
            elif xCo == xSize * (-1):
                xCo += 1
        elif inp=="down":
            if abs(yCo) < ySize :
                yCo -= 1
            elif yCo == ySize :
                yCo -= 1
        elif inp=="up":
            if abs(yCo) < ySize :
                yCo += 1
            elif yCo == ySize * (-1):
                yCo += 1

    
    
    
    answer = [xCo, yCo]
    return answer

 

잘못 작성한 답 (1) ::

 

def solution(keyinput, board):
    answer = []
    
    xCo = 0
    xCoMax = (board[0] - 1)/2
    yCo = 0
    yCoMax = (board[1] - 1)/2
    
    for command in keyinput:
        if command == 'left':
            if abs(xCo) < abs(xCoMax):
                xCo -= 1
        elif command == 'right':
            if abs(xCo) < abs(xCoMax):
                xCo += 1
        elif command == 'up':
            if abs(yCo) < abs(yCoMax):
                yCo += 1
        elif command == 'down':
            if abs(yCo) < abs(yCoMax):
                yCo -= 1
    answer.append(xCo)
    answer.append(yCo)
    
    return answer

 

https://school.programmers.co.kr/learn/courses/30/lessons/120861

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

728x90
반응형