본문 바로가기

WINK-(Web & App)/HTML & CSS & JS 스터디

[2024-2 웹기초 스터디] 김재승 #4주차

반응형

Js 문제풀이


1번

function solution(bin1, bin2) {
    // 이진수를 십진수로 변환
    const decimal1 = parseInt(bin1, 2);
    const decimal2 = parseInt(bin2, 2);

    // 두 값을 더하기
    const sum = decimal1 + decimal2;

    // 결과를 다시 이진수로 변환
    return sum.toString(2);
}
  1. solution 함수에 문자열 매개변수 binary 1,2 각각 받음
  2. constant 로 decimal1 ,2 를 설정
  3. 각각의 설정값은 문자열 bin1,2를 2(이진수)로 인지하여 10진수(숫자)로 변환 >> 이때 parseInt가 사용됨
  4. sum 변수로 두 값을 더하기
  5. 마지막으로 sum에 toString() 메서드를 사용해 이진수인 문자열로 다시 변환하면 끝

2번

// 내장 모듈 readline을 이용해 입력값을 읽고 처리
const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,//키보드 데이터 읽기
    output: process.stdout//콘솔에 데이터 저장
});
// line에 입력이 들어오면 input 함수 실행
rl.on('line', (input) => {
    // 입력된 문자열의 대소문자 변환
    let result = '';
    //input 문자열 순회하며 문자 하나씩 확인
    for (let char of input) {
        if (char === char.toUpperCase()) {
            result += char.toLowerCase();
        } else {
            result += char.toUpperCase();
        }
    }

    // 변환된 문자열 출력
    console.log(result);

    rl.close(); // 입력 종료
});
  1. 내장 모듈인 readline 불러오기
  2. 변수 rl에  키보드 입력값을 읽고 콘솔에 데이터를 저장하는 인터페이스 저장
  3. 문자열 들어오면 input 함수 실행하기
  4. result 값을 초기화하고 input을 순회하면서 대문자, 소문자 체크
  5. if문으로 해당 특정 문자가 대문자인 경우 result에 소문자로 변환 후 저장
  6. 조건에 벗어난 경우 (else) 대문자로 바꿔서 바로 저장
  7. 변환 시킨 뒤 console.log() 로 result 출력
  8.  rl.close() 로 마무리

3번

function solution(numbers) {
    // 숫자와 영어 단어 매핑
    const numMap = {
        "zero": "0",
        "one": "1",
        "two": "2",
        "three": "3",
        "four": "4",
        "five": "5",
        "six": "6",
        "seven": "7",
        "eight": "8",
        "nine": "9"
    };

    // 각 단어를 숫자로 치환
    for (let word in numMap) {
        numbers = numbers.replaceAll(word, numMap[word]);
    }

    // 숫자로 변환하여 반환
    return Number(numbers);
}
  1. solution 함수에 매개변수로 numbers 문자열 받기
  2. 변수 numMap 안에 key-value 로 맵핑 (숫자 0~9 까지)
  3. 키 값을 받는 word를 넣어 for문에서 word를 모두  numMap["word"] 로 바꾸고 그것을 numbers에 저장하기
  4. Number()를 이용해 숫자로 바꾼 상태로 return 하기

cf.) 

반복 순서 word  numMap[word] 치환 전 numbers 치환 후 numbers
1 "zero" "0" "onefourzero" "onefour0"
2 "one" "1" "onefour0" "1four0"
3 "two" "2" "1four0" "1four0"
4 "three" "3" "1four0" "1four0"
5 "four" "4" "1four0" "14zero"
6 "five" "5" "14zero" "14zero"
7 "six" "6" "14zero" "14zero"
8 "seven" "7" "14zero" "14zero"
9 "eight" "8" "14zero" "14zero"
10 "nine" "9" "14zero" "140"
반응형