문제 설명 문제 풀이 방법 이 문제의 설명에서 게임에 참여한 사람들이 지게되는 3가지 조건을 말했다. 1. 앞 사람이 말한 말의 끝에 문자를 시작문자로 하지 않았을 때. 2. 본인 이전의 사람이 말했던 말을 중복해서 말했을 경우. 3. 한가지 문자로 이루어진 말을 했을 경우 그리고 1번째로 탈락한 사람이 발생한 경우 바로 그 사람의 번호와 몇번째 횟수에서 탈락했는지 반환한다. 이를 위해 for문 안에 탈락자를 저장하는 배열의 길이를 측정해 예외 처리 했다. 또한 탈락한 사람이 없는 경우는 [0, 0]을 반환 하도록 했다. 내가 작성한 코드 const solution = (n, words) => { let answer = []; for(let i=0; i 0){ if( words[i][0] !== word..
문제 설명 문제 풀이 방법 처음에 문자열로만 접근하려 했는데 생각해보니 스택으로 접근하면 더 빠르게 될거 같아 접근법을 바꿨다. 아무래도 문자열의 길이가 1,000,000 까지다 보니 너무 길다 생각했다. 문자열로 접근해 풀게되면 문자열을 배열로 바꾸고, for문을 사용하고 그 안에 splice를 사용하기에 시간 복잡도가 높게 나올거 같았다. stack으로 접근하면 for문 한번만 돌면 되기에 시간 복잡도가 낮게 나올것이다. 내가 작성한 코드 const solution = (s) => { let arr = []; for(let i=0; i
문제 설명 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요. 제한 사항 n과 m은 각각 1000 이하인 자연수입니다. 문제 풀이 방법 문제에서 선언해준 변수 n, a, b를 사용해 푸는 방식의 문제였다. 나는 * 문자를 a 번만큼 반복해주는 문자열 star를 선언해주었고, for문을 이용해 그 star문자열을 b 번 만큼 반복해서 console.log로 출력했다. 내가 작성한 코드 process.stdin.setEncoding('utf8'); process.stdin.on('data', data => { const n = data.split(" "); const a = Number(n[0]), b ..