<숫자의 합>
www.acmicpc.net/problem/11720
11720번: 숫자의 합
첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다.
www.acmicpc.net
#내가푼코드
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let j = input[1];
let answer = 0;
for(let x of j){
answer = answer + Number(x);
}
console.log(answer);
#포인트
-문자열에서 각 문자(원소)를 하나씩 확인하여 정수로 변환한다.
-정수로 변환된 각 값을 모두 더하여 정답을 계산할 수 있다.
# 정답예시
//fs모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let n = Number(input[0]);
let j = input[1];
let answer = 0;
//문자열에 포함된 문자를 하나씩 확인하며
for(let x of string){
//모든 숫자를 더하기
answer += Number(x);
}
console.log(answer);
<문자열 반복>
www.acmicpc.net/problem/2675
2675번: 문자열 반복
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다
www.acmicpc.net
#포인트
-한 줄씩 읽어 들이면서, 문자열 S에 포함된 문자를 각각 R번 반복한다.
-예시) 4XYZ -> XXXXYYYYZZZZ
#정답예시
//fs모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs= require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let testCase = Number(input[0]);
//한 줄(line)씩 입력받기
for(let i=1; i<= testCase; i++){
let [r, s] = input[i].split(" ");
let result = "";
//현재 문자열의 각 문자를 하나씩 확인하며
for(let j=0; j<= s.length; j++){
//r번 반복한 문자열을 뒤에 이어붙이기
result += s.charAt(j).repeat(r);
}
console.log(result);
}
<상수>
2908번: 상수
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두
www.acmicpc.net
#내가 푼 코드
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let a = Number(input[0]);
let b = Number(input[1]);
#포인트
-세 자리 수를 문자열 형태로 처리하여, 뒤집을 수 있다.
-예시) "285"가 입력으로 들어오면 "582"로 변경한 뒤에 정수 데이터로 변경한다.
#정답예시
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
//input은 현재 string이다.
//split은 string을 일정한 구분자로 잘라서 배열로 저장한다.
let a = input[0].split(' ')[0];
let b = input[0].split(' ')[1];
let newA = a[2] + a[1] + a[0]; //string이니까 가능하다
let newB = b[2] + b[1] + b[0];
console.log(Math.max(Number(newA), Number(newB))) ;
https://moongji-record.tistory.com/549
String.prototype.split()
문자열을 일정한 구분자로 잘라서 배열로 저장 console.log("myname is abc".split(" ")) // ['myname', 'is', 'abc']
moongji-record.tistory.com
참고하기
<단어의 개수>
www.acmicpc.net/problem/1152
1152번: 단어의 개수
첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열
www.acmicpc.net
#포인트
-단순히 전체 문자열에 포함된 단어의 개수를 계산한다.
-결과적으로 공백("")으로 구분된 단어의 개수를 세면 된다.
#정답코드예시
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
//trim() 메서드는 문자열 양 끝의 공백을 제거한다.
//공백으로 구분된 단어의 개수 출력한다.
let data = input[0].trim().split(" ");
let count = 0;
for(let i=0; i < data.length; i++){
if(data[i] !== ""){
count ++;
}
}
console.log(count);
사이드의 필요없는 공백을 먼저 없앤후에 그걸 split하면 hello world이면 "hello", "world" 이렇게 되겟지
'개인공부 > 패스트캠퍼스 알고리즘' 카테고리의 다른 글
[알고리즘] 2-2. 배열과 리스트 (0) | 2023.08.15 |
---|---|
[알고리즘] 2-1. 자료구조 (0) | 2023.08.15 |
1-6. JavaScript 배열 문제풀이 (0) | 2023.07.30 |
1강-5. 반복문 문제풀이 (0) | 2023.07.28 |
1강-4. 조건문 문제풀이 (0) | 2023.06.29 |