본문 바로가기
TIL

220513: HTML document.write, JavaScript 배열 구조분해할당

by 김비누! 2022. 5. 13.

📝HTML document.write

document.write는 document.open를 자동적으로 호출하여 document 스트림에 텍스트를 적는다.
document의 모든 요소, 문서, 이벤트 리스너가 삭제된다.
document.write가 inline방식으로 사용되면 document.open()을 호출하지 않는다.

📝JavaScript 배열 이용한 구조분해할당(Destructuring Assignment)

'='을 기준으로 왼쪽에는 배열 안에 할당해주고 싶은 변수들을 입력하고, 오른쪽에는 할당을 해줄 iterable한 요소가 오는 형식이다.
배열, 문자열, Map, Set은 iterable하다.

prompt로 message를 받아 ',' 단위로 구분해 변수에 넣고, document.write로 웹페이지에 출력한다.

    let msg = prompt("이름, 나이,소개를 입력 (','로 구분)");
    const [name, age, introduce] = msg.split(',')
    document.write(
        `<h2>정보</h2><hr>
        이름: ${name}<br>
        나이: ${age}<br>
        소개: ${introduce}<br>
        `
    )

(참고: 알아서 잘 딱 깔끔하고 센스있게 정리하는 JavaScript 핵심 개념)

💻백준 2293: 동전 1

백준 2293
dp문제
다른 분들의 해설을 참고해서 풀었다.

 

가장 먼저, coin이 1, 2가 있을 때
0원을 만드는 경우의 수는 1(동전 사용하지x)이다.

 

1원을 만드는 경우의 수는 1
2원을 만드는 경우의 수는 2이다.

 

3원을 만드는 경우의 수는

1원 하나를 이용한 경우(2원을 만드는 경우에 1원을 더함)와 2원 하나를 이용한 경우(1원을 만드는 경우에 2원을 더함)로 나뉜다.

각각 1가지이므로 dp[3] = 2이다.

 

4원을 만드는 경우의 수도 1원 하나를 이용한 경우(3원을 만드는 경우에 1원을 더함)와 2원 하나를 이용한 경우(2원을 만드는 경우에 2원을 더함)의 두가지 경우로 나뉘어

dp[4] = dp[3] - dp[2] = 4이다.

 

이렇게 coin이 n개일 때, k원을 만드는 경우는
dp[k] = dp[k-coin 1] + dp[k-coin 2] + ... + dp[k-coin n]
가 된다.

코드

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int k = sc.nextInt();
        int[] coin = new int[n];
        int[] dp = new int[k+1];    

        for (int i = 0; i < n; i++) {
            coin[i] = sc.nextInt();    
        }
        dp[0] = 1;

        for(int i = 0; i < coin.length; i++) {
            for(int j = coin[i]; j < dp.length; j++) {
                dp[j] += dp[j - coin[i]]; 
            }
        }
        System.out.println(dp[k]);
    }

☕️ 잡담

dp 어렵다..

'TIL' 카테고리의 다른 글

220517  (0) 2022.05.17
220516  (0) 2022.05.16
220512  (0) 2022.05.12
220510: JavaScript 암묵적 전역  (0) 2022.05.10
220509  (0) 2022.05.09

댓글