일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 리액트
- 코어 자바스크립트
- LeetCode
- 리덕스
- codestates
- programmers
- 손에 익히며 배우는 네트워크 첫걸음
- 회고
- python
- 코드스테이츠
- 타입스크립트 올인원
- javascript
- 백준
- 프로그래머스
- 4주 프로젝트
- 2주 프로젝트
- 파이썬
- 리트코드
- 타임어택
- 정재남
- 알고리즘
- 제로초
- Async
- 타입스크립트
- 렛츠기릿 자바스크립트
- js
- 토익
- 자바스크립트
- SQL 고득점 Kit
- til
Archives
- Today
- Total
Jerry
백준 - 단계별 문제 - 문자열 - node.js / javascript 본문
Problem Solving/Algorithm 문제 풀기
백준 - 단계별 문제 - 문자열 - node.js / javascript
juicyjerry 2021. 7. 7. 17:49반응형
1. 아스키코드
let input = require('fs').readFileSync('/dev/stdin').toString();
console.log(input.charCodeAt(0));
2. 숫자의 합
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let sum = input[1].split('').reduce((acc, cur) => acc + Number(cur), 0);
console.log(sum);
3. 알파벳 찾기
let input = require("fs").readFileSync("/dev/stdin").toString();
let arr = [];
for (let i = 97; i <= 122; i++) {
let str = String.fromCharCode(i);
console.log(Number(input.indexOf(str) + ' '));
}
4. 문자열 반복
let input = require("fs").readFileSync("/dev/stdin").toString().split('\n');
let len = input.shift();
for (let t = 0; t < len; t++) {
let [time, str] = input[t].split(' ');
let answer = '';
for (let y = 0; y < str.length; y++) {
for (let x = 0; x < time; x++) {
answer += str[y];
}
}
console.log(answer);
}
5. 단어 공부
(테케 통과가 되는데 문제가 통과 안 됨 - 다시 풀 예정)
let input = require("fs").readFileSync("/dev/stdin").toString().split('');
let obj = {};
for (let i = 0; i < input.length; i++) {
if (obj[input[i].toUpperCase()]) obj[input[i].toUpperCase()]++;
else obj[input[i].toUpperCase()] = 1;
}
let objValues = Object.values(obj);
let max = Math.max(...objValues);
let cnt = 0;
let maxIdx = 0;
for (let i = 0; i < objValues.length; i++) {
if (max === objValues[i]) {
cnt++;
maxIdx = i;
}
}
if (cnt > 1) console.log('?');
else console.log(input[maxIdx].toUpperCase());
6. 단어의 개수
let input = require("fs").readFileSync("/dev/stdin").toString().trim().split(' ');
let cnt = 0;
for (let i = 0; i < input.length; i++) {
if (input[i] !== '') {
cnt++;
}
}
console.log(cnt);
7. 상수
let input = require('fs').readFileSync('/dev/stdin').toString();
let [num1, num2] = input.split(' ');
num1 = Number(num1.split('').reverse().join(''));
num2 = Number(num2.split('').reverse().join(''));
if (num1 > num2) console.log(num1);
else console.log(num2);
8.다이얼
(테케 통과가 되는데 문제가 통과 안 됨 - 다시 풀 예정)
let input = require('fs').readFileSync('/dev/stdin').toString();
let dial = {
0: "",
1: "ABC",
2: "DEF",
3: "GHI",
4: "JHL",
5: "MNO",
6: "PQRS",
7: "TUV",
8: "WXYZ",
9: "",
};
let sum = 0;
let dialTime = Object.keys(dial);
let dialStr = Object.values(dial);
for (let i = 0; i < input.length; i++) {
let target;
for (let j = 0; j < dialTime.length; j++) {
target = dialStr[j].indexOf(input[i]);
if (target > -1) {
target = j;
break;
}
}
let targetTime = dialTime[target];
sum += Number(targetTime) + 2;
}
console.log(sum);
9. 크로아티아 알파벳
(통과 못 함 - 다시 풀 예정)
let input = require("fs").readFileSync("/dev/stdin").toString();
let croatic = ["c=", "c-", "dz=", "d-", "lj", "nj", "s=", "z="];
let croaticArr = [];
let flag, target;
for (let y = 0; y < input.length; y++) {
if (flag === 1 || target === undefined) {
target = input[y];
} else {
if (target.length >= 2) {
croaticArr.push(target[0]);
y -= 3;
target = "";
continue;
} else {
target += input[y];
}
}
flag = 0;
if (croatic.indexOf(target) > -1) {
croaticArr.push("*");
flag = 1;
}
}
console.log(croaticArr.length);
10. 그룹 단어 체커
(테케 통과가 되는데 문제가 통과 안 됨 - 다시 풀 예정)
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
let len = input.shift();
let cnt = 0;
for (let y = 0; y < input.length; y++) {
let target = input[y].split('');
let arr = [];
let flag = 0;
for (let x= 0; x < input[y].length; x++) {
if (arr.indexOf(target[x]) === -1 || target[x] === target[x - 1]) {
if ( target[x] === target[x - 1]) continue;
arr.push(target[x]);
}
else {
flag = 1;
break;
}
}
if (flag === 0) cnt++;
}
console.log(cnt);
반응형
'Problem Solving > Algorithm 문제 풀기' 카테고리의 다른 글
[프로그래머스]직사각형 별찍기 (0) | 2021.12.24 |
---|---|
백준 - 단계별 문제 - 기본 수학1 1/2 - node.js / javascript (0) | 2021.07.14 |
백준 - 단계별 문제 - 함수 - node.js / javascript (0) | 2021.07.07 |
백준 - 단계별 문제 - 1차원 배열 - node.js / javascript (0) | 2021.07.06 |
[프로그래머스 / 자바스크립트] N개의 최소공배수 (0) | 2021.06.18 |