[자바스크립트/알고리즘] 프로그래머스 - 파일명 정렬: 2018 카카오 블라인드
알고리즘/프로그래머스 2022. 7. 4. 23:17

[문제] 코딩테스트 연습 - [3차] 파일명 정렬 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램 programmers.co.kr 1. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 또한, 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 2. 무지는 단순한 문자 코드 순이 아닌, 파일명에 포함된 숫자를 반영한 정렬 기능을 저장소 관리 프로그램에 구현하기로 했다. 3. 파일명은 크게 HEAD, NUMBER, TAIL의 세 부분으로 구성된다. 4. 무지를 도와 파일명 정렬 프로그램을 구..

[노드JS/알고리즘] 백준 - 1063번 킹
알고리즘/백준 2022. 6. 30. 22:19

[문제] 1063번: 킹 8*8크기의 체스판에 왕이 하나 있다. 킹의 현재 위치가 주어진다. 체스판에서 말의 위치는 다음과 같이 주어진다. 알파벳 하나와 숫자 하나로 이루어져 있는데, 알파벳은 열을 상징하고, 숫자는 www.acmicpc.net [코드 풀이] let [positions, ...commands] = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : "input.txt") .toString() .trim() .split("\n"); // A-H열을 숫자로 라벨링 const pos = { A: 1, B: 2, C: 3, D: 4, E: 5, F: 6, G: 7, H: 8, }; // 방향 정의 const move..

[자바스크립트/알고리즘] HackerRank - Flipping bits
알고리즘/HackerRank 2022. 4. 3. 12:56

Success Rate: 97.64%, 난이도: Basic 문제이다. 비트 연산으로 풀 수 있지만, 더 간단한 솔루션을 찾았다. - 문제 32비트 unsigned 정수가 주어지면, 비트 1은 0으로, 비트 0은 1로 반전시키고 unsigned integer로 결과를 리턴하여라. - 예시 [입력값] 3 2147483647 1 0 [출력값] 2147483648 4294967294 4294967295 - 풀이 'use strict'; const fs = require('fs'); process.stdin.resume(); process.stdin.setEncoding('utf-8'); let inputString = ''; let currentLine = 0; process.stdin.on('data', fu..

[노드JS/알고리즘] 백준 - 16953번 A -> B (DFS 풀이)
알고리즘/백준 2022. 3. 13. 11:47

- 문제 16953번: A → B 첫째 줄에 A, B (1 ≤ A +v); let answer = -1; const DFS = (A, B, cnt) => { if (A === B) { answer = cnt + 1; return; } else { if (A * 2

[노드JS/알고리즘] 백준 - 1747번 소수&팰린드롬
알고리즘/백준 2022. 3. 9. 18:16

[문제] 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net [코드] const stdin = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : "input.txt") .toString() .trim(); let N = Number(stdin); const checkPrimeNum = (n) => { if (n === 1) return false; else if (n === 2) return t..

[노드JS/알고리즘] 백준 - 1074번 Z
알고리즘/백준 2022. 2. 18. 13:11

[문제] 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net [코드] let [N, r, c] = ( process.platform === "linux" ? require("fs").readFileSync("/dev/stdin").toString().trim() : `4 7 7` ) .trim() .split(" ") .map((v) => +v); let res = 0; const divide = (row, col, size) => { if (row === r && col === c) { // 좌표 찾음..

[노드JS/알고리즘] 백준 - 11256번 사탕
알고리즘/백준 2022. 1. 24. 00:42

[문제] 당신은 사탕 공장의 주인이다. 날마다, 당신은 J개의 사탕을 가게에 보내기 위해 상자에 포장해야 한다. 당신은 크기가 다른 상자 N개를 가지고 있다. 당신은 편리를 위해 상자를 최소한으로 쓰려고 한다. (박스를 다 채울 필요는 없다. 일부분만 채워도 된다.) 당신이 공장에서 나오는 사탕의 개수와 각 상자의 크기를 입력받고, 상자를 최소한으로 쓸 때의 사용되는 상자 개수를 출력하는 프로그램을 작성하라. 사탕들을 포장할 공간은 충분하다는 것이 보장된다. 첫 번째 줄에는 테스트 케이스의 개수 T (1 ≤ T ≤ 10)가 주어진다. 각각의 테스트 케이스는 아래 형식을 따른다. 테스트 케이스의 첫 번째 줄에는 사탕의 개수 J와 상자의 개수 N이 주어진다. (1 ≤ J, N ≤ 1,000) 다음 N개의 줄..

[자바스크립트/알고리즘] 프로그래머스 - 베스트 앨범: 해시 테이블
알고리즘/프로그래머스 2022. 1. 18. 01:11

[문제 설명] 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. [제한 사항] genres[i]는 고유번호가 i인 노래의 장르입니다. plays[i]는 고유번호가 i인 노래가 재생된..

[자바스크립트, 파이썬/알고리즘] 프로그래머스 - 크레인 인형뽑기 게임 (카카오 인턴십 문제)
알고리즘/프로그래머스 2021. 5. 28. 14:03

[문제 설명] 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 ..

[자바스크립트/알고리즘] 프로그래머스 - JadenCase 문자열 만들기 (정규식)
알고리즘/프로그래머스 2021. 5. 18. 00:56

문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해주세요. 제한 조건 s는 길이 1 이상인 문자열입니다. s는 알파벳과 공백문자(" ")로 이루어져 있습니다. 첫 문자가 영문이 아닐때에는 이어지는 영문은 소문자로 씁니다. ( 첫 번째 입출력 예 참고 ) 입출력 예 s return "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week" 코드 function solution(s) { var answer = ''; answer = s.replace(..