코테 13

프로그래머스, 자바스크립트) 수박수박수박수박수박수?

문제https://school.programmers.co.kr/learn/courses/30/lessons/12922 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이수, 수박, 수박수, 수박수박, 이런식으로 수박을 n에 따라 표현한다.짝수일때는 수박을 n/2번 반복해주면 되지만 n이 홀수일때는 뒤에 "수"를 덧붙여줘야 하므로 조건문으로 처리해 준다.function solution(n) { let result = "수박".repeat(Math.floor(n / 2)); if (n % 2) { result += "수"; } return result;}

프로그래머스, 자바스크립트) 정수를 나선형으로 배치하기

문제https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr풀이우선, 0으로 채운 n x n 크기의 배열을 만들어 준다. // 결과를 저장할 이차원 배열을 n x n 크기로 만들기 const result = Array.from({ length: n }, () => Array(n).fill(0)); 나선형으로 변수를 채우기 위해 필요한 방향 변수를 정의 해놓는다. let num = 1; let row = 0, col = 0; let dr = 0, ..

프로그래머스, 자바스크립트) 안전지대

문제https://school.programmers.co.kr/learn/courses/30/lessons/120866 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이배열을 돌면서, 1이 나오면 그 주변을 x로 변경한다. 단 1이 적혀있는 경우에는 1을 유지한다.배열을 다 순환한 다음에 0의 갯수를 세어 반환한다.function solution(board) { board.forEach((line, i) => { line.forEach((cell, j) => { if (cell === 1) { // 왼쪽 if (j ..

프로그래머스, 자바스크립트) 주사위 게임 3

문제https://school.programmers.co.kr/learn/courses/30/lessons/181916?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이주사위값을 key, 해당 주사위 값의 갯수를 value로 객체를 만든다. function solution(a, b, c, d) { //{주사위값 : 갯수}로 정리 const diceValue = [a, b, c, d].reduce((acc, cur) => { acc[cur] = acc[cur] ? acc[cur] + 1 : 1; return ..

프로그래머스, 자바스크립트) 배열 조각하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/181893 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 배열을 돌면서 조건에 맞게 slice로 잘라낸걸 다시 할당해준다. 이때 주의할 점은 slice는 배열을 자를때 end 인덱스 앞으로 잘린다는 사실 기억해야 된다. function solution(arr, query) { for (i = 0; i < query.length; i++) { const index = query[i]; if (i % 2 === 0) { // 짝수 arr = a..

프로그래머스, 자바스크립트) 코드 처리하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/181932 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 반복문을 돌며 조건에 맞게 짜준다. function solution(code) { let mode = 0; // 초기 모드는 0 let ret = ""; // 결과 문자열 초기화 for (let idx = 0; idx < code.length; idx++) { const char = code[idx]; // 현재 문자 // 모드 0에서 짝수 인덱스에 문자 추가 || 모드 1에서 홀수 ..

프로그래머스, 자바스크립트) OX퀴즈

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120907 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 eval을 사용해서 풀면 간단하겠지만, 실제 코드에서 eval은 악성 버그를 유발시킬수도 있기에 사용을 자제하는 편이다. (eval은 문자열 수식을 넣으면 계산해주는 함수, ex. eval("1+1") //2 ) split 으로 공백을 기준으로 쪼갠 후 구조분해 할당을 통해 하나씩 어떤 값을 의미하는지 적어보자. 적어놓고 나면 if문으로 분리해서 쉽게 풀 수 있다. function s..

프로그래머스, 자바스크립트) 다항식 더하기

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120863 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 음...더 좋은 방법을 찾고싶다. 일단 "3x + 1" 이런식으로 연산기호 사이에 공백이 존재하니 공백을 기준으로 쪼개 배열을 만든다. => ["3x","+","1"] 3x 같이 일차항인 경우 x를 포함하고 있다면 ~ 으로 조건을 달아 일차항에 누적해준다. 그외는 isNaN의 반례, 즉 기호가 아닌 숫자가 오는 경우 상수항에 더해준다. isNaN(+) => true isNaN(7) =..

프로그래머스, 자바스크립트) 치킨 쿠폰

문제 https://school.programmers.co.kr/learn/courses/30/lessons/120884 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 우선 서비스 치킨은 0, 쿠폰의 수는 치킨 수로 설정한다. 이 동작은 쿠폰이 10개 이상일때 계속 반복되어야 하니 while문을 사용한다. 쿠폰이 10장 생기면 서비스 치킨을 받을 수 있으니 서비스는 = 쿠폰/10장 반내림으로 설정하고 이때 쿠폰의 수는 10으로 나눴을때 나머지 + 서비스 치킨으로 받은 쿠폰 으로 계산해준다. 이 과정을 쿠폰이 10장 미만이라 치킨을 더 이상 시켜먹지 ..

프로그래머스, 자바스크립트) 전국 대회 선발 고사

문제 https://school.programmers.co.kr/learn/courses/30/lessons/181851 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 일단..문제를 보고 든 생각, 배열에서 true만 뽑아 랭크 : 번호 로 할당된 객체를 만든다. 객체는 key가 숫자일 경우 자동적으로 오름차순 정렬되기 때매 랭크 순서대로 정렬된 값을 구할 수 있다. 다음 Object.values 를 통해 배열로 변경해 순서대로 3개를 꺼낸다 (무조건 3개 이상의 값을 가진다는 조건이 있으니 등수가 모자랄 경우는 고려하지 않음) function so..