jiho_bae
Go devlog
jiho_bae
전체 방문자
오늘
어제
  • 분류 전체보기 (158)
    • JavaScript (38)
      • theory (34)
      • vanilla (4)
    • HTML & CSS (2)
    • Browser (3)
    • CS (6)
      • linux (1)
      • shell (2)
      • compiler (2)
    • DS & Algorithm (87)
      • theory (5)
      • basic (7)
      • programmers (30)
      • baekjoon (45)
    • Design Pattern (2)
    • Error (4)
    • Git & Github (4)
    • Tools (1)
    • 부트캠프 (4)
    • Small Tips (2)
    • Java (3)
    • test (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바스크립트 배열의 특수함
  • 리코쳇 로봇 javascript
  • 가사 검색 자바스크립트
  • 자바스크립트 커링
  • JavaScript
  • 깃 이전 커밋에서 새 브랜치 만들기
  • 1753 최단경로 javascript
  • 리액트 프로젝트 디버깅하기
  • 카카오 코딩테스트 양궁대회 nodeJS
  • 자바스크립트 이벤트 위임
  • 외벽 점검 javascript
  • 자바스크립트 sort는 왜 그모양일까
  • 백준 17406 nodeJS
  • 자바스크립트 채팅방 스크롤
  • 백준 자바스크립트 입력 템플릿
  • 계수정렬 자바스크립트
  • 병합정렬 자바스크립트
  • fetch 취소하기
  • 억억단을 외우자 javascript
  • 덧칠하기 javascript
  • javascript use strict
  • safari Date format NaN
  • 대충만든자판 javascript
  • 자바스크립트 모듈 시스템
  • 퀵정렬 자바스크립트
  • 25632 소수 부르기 게임
  • safari invalid date error
  • 13460 javascript nodejs
  • 자바스크립트 비동기 마이크로 태스크 큐와 렌더링 과정
  • 프로그래머스 숫자카드나누기 javascript

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
jiho_bae

Go devlog

DS & Algorithm/programmers

[프로그래머스] 영어 끝말잇기 - 자바스크립트

2021. 6. 27. 00:48

앞으로 알고리즘 문제에 대해서 문제 - 코드 - 풀이 순으로 포스팅을 할 예정이다.

 

문제

 

코딩테스트 연습 - 영어 끝말잇기

3 ["tank", "kick", "know", "wheel", "land", "dream", "mother", "robot", "tank"] [3,3] 5 ["hello", "observe", "effect", "take", "either", "recognize", "encourage", "ensure", "establish", "hang", "gather", "refer", "reference", "estimate", "executive"] [0,0]

programmers.co.kr

 

코드

function solution(n, words) {
  const voca = [];
  let now = words[0];
  let cnt = 1,
    order = 1;

  voca.push(now);
  words = words.slice(1);

  for (let next of words) {
    if (++order > n) {
      order = 1;
      cnt++;
    }
    if (now[now.length - 1] !== next[0] || voca.includes(next))
      return [order, cnt];
    voca.push(next);
    now = next;
  }
  return [0, 0];
}

 

풀이

끝말잇기 게임에서 가장 먼저 탈락하는 사람의 번호와 그 사람이 몇번째 차례에서 탈락했는지를 구하는 문제이다.

 

변수

voca : 언급한 단어를 담은 배열

now : 현재 단어
cnt : 몇번째 차례인지를 구하는 변수
order : 단어를 말하는 사람의 번호
next : 다음 단어

 

 

words 변수의 단어를 하나씩 조회한다.

 

1번 ~ n번 사람까지의 순서가 끝나면 1번 사람으로 바꾸면서 차례를 하나 더해준다.

voca배열에 현재 언급된 단어를 넣어준다.

 

다음 단어가 끝말잇기 규칙에 어긋나거나 voca 배열에 이미 존재하면, 그 사람은 탈락하고 번호와 차례를 출력한다.

만약 words 단어들을 모두 조회할 때 까지 게임이 끝나지 않았다면 [0,0]을 리턴한다.

저작자표시

'DS & Algorithm > programmers' 카테고리의 다른 글

[프로그래머스] 괄호 회전하기 - 자바스크립트  (0) 2021.06.27
[프로그래머스] 압축 - 자바스크립트  (0) 2021.06.27
[프로그래머스] 파일명 정렬 - 자바스크립트  (0) 2021.06.24
[프로그래머스] 피보나치 수 - 자바스크립트  (0) 2021.06.19
[프로그래머스] 튜플 - 자바스크립트  (0) 2021.06.19
    'DS & Algorithm/programmers' 카테고리의 다른 글
    • [프로그래머스] 괄호 회전하기 - 자바스크립트
    • [프로그래머스] 압축 - 자바스크립트
    • [프로그래머스] 파일명 정렬 - 자바스크립트
    • [프로그래머스] 피보나치 수 - 자바스크립트
    jiho_bae
    jiho_bae
    하루에 한 걸음씩

    티스토리툴바