페블_
반짝이는 시냅스
페블_
전체 방문자
오늘
어제
  • 전체글 보기 (96)
    • QA (0)
    • 프로젝트 회고 (4)
    • 프로젝트 과정 기록 (12)
    • UI 구현 연구일지 (8)
    • Front-end (31)
      • Javascript (7)
      • CSS (10)
      • React (5)
      • Typescript (3)
      • Nextjs (3)
      • 스타일링 라이브러리 (3)
    • Back-end (0)
      • Express (0)
      • DB (0)
    • CS (0)
      • 자료구조 & 알고리즘 (0)
    • CI&CD (1)
    • 툴 사용법 (4)
      • Git (1)
      • Library&패키지 (2)
      • 기타 개발관련 (1)
    • 알고리즘 이론 & 풀이 (36)
      • 백준(BOJ) (14)
      • 프로그래머스 (22)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 캐러셀
  • 선형대수학
  • 알고리즘
  • 백준
  • storybook
  • eslint
  • 토이프로젝트
  • Python
  • react
  • 시리즈_표지
  • 생각
  • JS
  • emotion
  • 파이썬
  • chartjs
  • TypeScript
  • 개발블로그_시작
  • UI 컴포넌트

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
페블_

반짝이는 시냅스

알고리즘 이론 & 풀이/프로그래머스

프로그래머스 Lv.0 | 캐릭터의 좌표

2023. 6. 29. 02:24

 

문제 주소 - https://school.programmers.co.kr/learn/courses/30/lessons/120861

 

📝사고의 흐름

  1. 방향키가 들어있는 배열을 돌며 switch case로 무슨 키인지 검사하고, 좌표값을 ++ 혹은 -- 해주자.
    [0, 0]에서 시작하므로 [0, 0] 배열을 선언하고, 이 배열의 값을 증감하자.
  2. 그런데 무한정 이동할 수는 없다. max x값과 max y값을 구한다.
  3. 음수방향으로 가는 경우도 있으므로 max x 혹은 max y에 마이너스를 붙인 값도 잊으면 안된다.
  4. 만약 max x와 max y, 그리고 음수방향을 넘으면 더이상 값이 증가하지 않도록 해야 한다.
  5. switch case에서 방향키를 검사할 때 현재 좌표가 최대값에 다다르지 않았는지 검사하고, 최대값이 아닌 경우에만 좌표를 증감하도록 한다.

💻코드

function solution(keyinput, board) {
  const xy = [0, 0];
  const MAX_X = (board[0] - 1) / 2;
  const MAX_Y = (board[1] - 1) / 2;

  function calculate(arrow, xy) {
    switch (arrow) {
      case 'left':
        if (xy[0] !== -MAX_X) --xy[0];
        break;
      case 'right':
        if (xy[0] !== MAX_X) ++xy[0];
      case 'up':
        if (xy[1] !== MAX_Y) ++xy[1];
        break;
      case 'down':
        if (xy[1] !== -MAX_Y) --xy[1];
    }
  }

  keyinput.forEach((arrow) => calculate(arrow, xy));
  return xy;
}

'알고리즘 이론 & 풀이 > 프로그래머스' 카테고리의 다른 글

프로그래머스 Lv.0 | 구슬을 나누는 경우의 수  (0) 2023.07.07
프로그래머스 Lv.0 - 직각삼각형 출력하기 +) nodejs readline  (0) 2023.07.06
프로그래머스 Lv.0 | 최빈값 구하기  (0) 2023.07.05
프로그래머스 Lv.0 | 분수의 덧셈  (0) 2023.07.02
프로그래머스 Lv.0 | 자릿수 더하기  (0) 2023.06.30
    '알고리즘 이론 & 풀이/프로그래머스' 카테고리의 다른 글
    • 프로그래머스 Lv.0 - 직각삼각형 출력하기 +) nodejs readline
    • 프로그래머스 Lv.0 | 최빈값 구하기
    • 프로그래머스 Lv.0 | 분수의 덧셈
    • 프로그래머스 Lv.0 | 자릿수 더하기
    페블_
    페블_

    티스토리툴바