본문 바로가기

항해99

[항해99]TIL_알고리즘1

반응형

 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()의 차이

https://stackoverflow.com/questions/4564158/what-is-the-difference-between-parseintstring-and-numberstring-in-javascript 

 

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