반응형
1. 2주차 학습 내용 : 주특기 언어를 활용한 알고리즘 학습
항해에서 큐레이션한 28개의 알고리즘 문제를 학습하고 팀원에게 풀이과정을 설명한다.
2. 문제1 : 직사각형 별찍기
가. 문제 설명
나. 문제 풀이
- repeat() 메소드를 사용해 n번 만큼 문자열을 반복하여 붙인뒤 반환한다.
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => { // 터미널에서 데이터를 받아온다
const n = data.split(" "); // 데이터를 n이라는 상수로 선언 후 " "을 기준으로 배열을 나눈다.
const a = Number(n[0]), b = Number(n[1]); // 첫 번째 배열은 a, 두 번째 배열은 b
const row = "*".repeat(a); // 상수 row를 선언하고 상수 a만큼 "*"을 반복한다.
for (let i = 0; i < b; i++){ // 반복문을 활용해 상수 b만큼 row를 만들어준다.
console.log(row);
}
});
3. 문제2 : 짝수와 홀수
가. 문제 설명
나. 문제 풀이
- 내가 풀이한 방식
function solution(num) {
var answer = '';
if (num %2 == 0){ // num을 2로 나눈 값의 나머지가 0이면
return answer = "Even"; // 짝수
} else {
return answer = "Odd"; // 0이 아니라면 홀수
}
return answer;
}
- 삼항 연산자를 이용한 방식
function solution(num) {
return num % 2 ? "Odd" : "Even";
}
4. 문제3 : 가운데 글자 가져오기
가. 문제 설명
나. 문제 풀이
5. 문제4 : 두 정수 사이의 합
가. 문제 설명
나. 문제 풀이
function solution(a, b) {
let answer = 0;
let min = Number.abs; // Number.abs() 함수를 활용 min을 정수로 변환
let max = Number.abs; // max를 정수로 변환
min = Math.min(a, b); //min에는 a와 b 중 최소값을 할당
max = Math.max(a, b); //max에는 a와 b 중 최대값을 할당
for (let i = min; min <= max; min++) {
answer += min;
}
return answer;
}
6. 문제5 : 문자열을 정수로 바꾸기
가. 문제 설명
나. 문제 풀이
- 내가 풀이한 방식
function solution(s) {
var answer = 0;
return answer = parseInt(s); // 문자열 s를 정수로 변환한다.
return answer; // parseInt(s)는 Number(s)로 대체 가능
}
- parseint()와 number()의 차이
What is the difference between parseInt(string) and Number(string) in JavaScript?
What is the difference between parseInt(string) and Number(string) in JavaScript?
stackoverflow.com
- JS에서 문자와 숫자를 연산하면 숫자로 변환되는 점을 활용(한줄로 끝내는 마법;;)
function solution(s) {
return s/1;
}
반응형
'항해99' 카테고리의 다른 글
[항해99]TIL_알고리즘3 (0) | 2021.11.10 |
---|---|
[항해99]TIL_알고리즘2 (0) | 2021.11.09 |
JWT (2) | 2021.11.07 |
[항해99]Week 1_WIL (1) | 2021.11.07 |
REST API에 의거한 서버 만들기 (0) | 2021.10.20 |