μžλ°” μ•Œκ³ λ¦¬μ¦˜ 문제 풀이 μž…λ¬Έ. μ„Ήμ…˜3. Two Pointers, Sliding Window [νš¨μœ¨μ„± : O(n^2) --> O(n)] : μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•© 2 (μˆ˜ν•™μ μœΌλ‘œ ν‘ΈλŠ” 방법)

2023. 10. 20. 12:47γ†μΈν”„λŸ°/μžλ°” μ•Œκ³ λ¦¬μ¦˜ λ¬Έμ œν’€μ΄ μž…λ¬Έ : μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„

728x90

 

https://hyejin.tistory.com/1224

 

μžλ°” μ•Œκ³ λ¦¬μ¦˜ 문제 풀이 μž…λ¬Έ. μ„Ήμ…˜3. Two Pointers, Sliding Window [νš¨μœ¨μ„± : O(n^2) --> O(n)] : μ—°μ†λœ μžμ—°

https://hyejin.tistory.com/1223 -> 이전 문제 풀이 5. μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•© μ„€λͺ… Nμž…λ ₯으둜 μ–‘μ˜ μ •μˆ˜ N이 μž…λ ₯되면 2개 μ΄μƒμ˜ μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ μ •μˆ˜ N을 ν‘œν˜„ν•˜λŠ” λ°©λ²•μ˜ κ°€μ§“μˆ˜λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œ

hyejin.tistory.com

-> 이전 ν’€μ΄μ—μ„œ μ΄μ–΄μ§‘λ‹ˆλ‹€. 

 

 

 

5. μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•© 

μ„€λͺ…

Nμž…λ ₯으둜 μ–‘μ˜ μ •μˆ˜ N이 μž…λ ₯되면 2개 μ΄μƒμ˜ μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ μ •μˆ˜ N을 ν‘œν˜„ν•˜λŠ” λ°©λ²•μ˜ κ°€μ§“μˆ˜λ₯Ό 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ„Έμš”.

λ§Œμ•½ N=15이면

7+8=15

4+5+6=15

1+2+3+4+5=15

와 같이 총 3κ°€μ§€μ˜ κ²½μš°κ°€ μ‘΄μž¬ν•œλ‹€.

 

μž…λ ₯

첫 번째 쀄에 μ–‘μ˜ μ •μˆ˜ N(7<=N<1000)이 μ£Όμ–΄μ§‘λ‹ˆλ‹€.

 

좜λ ₯

첫 쀄에 총 경우수λ₯Ό 좜λ ₯ν•©λ‹ˆλ‹€.

 

μ˜ˆμ‹œ μž…λ ₯ 1 

15

 

μ˜ˆμ‹œ 좜λ ₯ 1

3

 

 

이 λ¬Έμ œλŠ” μ €λ²ˆ κΈ€μ—μ„œ ν’€μ—ˆλ˜ 문제인데,, μˆ˜ν•™μ μœΌλ‘œ ν‘ΈλŠ” 방법이 μžˆλ‹€ν•΄μ„œ μΆ”κ°€μ μœΌλ‘œ 글을 μž‘μ„±ν•©λ‹ˆλ‹€. 

이전 풀이λ₯Ό 보고 μ‹Άλ‹€λ©΄ μœ„μ˜ 링크λ₯Ό 타고 λ“€μ–΄κ°€κΈΈ.. πŸ˜—

 

문제 풀이 1

public int solution3(int n) {
    int answer = 0, cnt = 1; // cntλŠ” μ—°μ†λœ 수의 개수 
    n--;
    while (n > 0) {
        cnt++;
        n = n - cnt;
        if (n % cnt == 0) answer++;
    }

    return answer;
}

πŸ‘Ύ : 기쑴에 문제 ν’€λ•ŒλŠ” μŠ¬λΌμ΄λ”© μœˆλ„μš° 방법을 μ‚¬μš©ν–ˆλ”λΌλ©΄ μ΄λ²ˆμ—λŠ” μˆ˜ν•™μ  방법을 μ‚¬μš©ν•΄μ„œ 문제λ₯Ό ν‘ΈλŠ” 방법을 μ„€λͺ…ν•œλ‹€. 

μ—°μ†λœ 수라고 ν–ˆμœΌλ‹ˆ λ¨Όμ € 2개의 수λ₯Ό λ”ν•΄μ„œ 15κ°€ λ˜λŠ” 게 μžˆλŠ”μ§€ μ°Ύμ•„λ³Έλ‹€. 

1 2 μ΄λ ‡κ²Œ 두 개의 수λ₯Ό 15μ—μ„œ λΉΌκ³  κ·Έ λ‹€μŒ μ—°μ†λœ 수의 개수 2λ₯Ό λ‚˜λˆ μ„œ 0이 되면 μ—°μ†λœ λ‘κ°œμ˜ μžμ—°μˆ˜μ˜ 합이 15κ°€ λ˜λŠ” 게 μžˆλ‹€λŠ” 말이닀. 

1️⃣ 2️⃣ -> 7 + 8 이 μžˆμœΌλ―€λ‘œ answer 에 + 1 ν•΄μ€€λ‹€. 

 

λ‹€μŒ μ„Έμžλ¦¬ μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ 15κ°€ λ˜λŠ” μˆ˜κ°€ μžˆλŠ”μ§€ 확인해본닀면 

1️⃣ 2️⃣ 3️⃣ 

15μ—μ„œ - 1 - 2 - 3 을 ν•˜κ³   = 9 , κ·Έ λ‹€μŒ 3을 λ‚˜λˆ΄μ„ λ•Œ λ‚˜λˆ  떨어진닀면 μ—­μ‹œ μ—°μ†λœ 3개의 μžμ—°μˆ˜μ˜ 합이 15κ°€ λ˜λŠ” 게 μžˆλ‹€λŠ” λ§μ΄λ―€λ‘œ 

answer 에 + 1 을 ν•΄μ€€λ‹€.  ( 4 + 5 + 6 ) 

 

λ‹€μŒ 4자리 μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ 15κ°€ λ˜λŠ” 수 κ°€ μžˆλŠ”μ§€ 확인해본닀면 

1️⃣ 2️⃣ 3️⃣ 4️⃣ 

15 μ—μ„œ - 1 - 2 - 3 - 4 을 ν•˜κ³  = 5, κ·Έ λ‹€μŒ 4둜 λ‚˜λˆ΄μ„ λ•Œ λ‚˜λˆ  떨어지지 μ•ŠκΈ° λ•Œλ¬Έμ— μ—°μ†λœ 4개의 μžμ—°μˆ˜μ˜ 합이 15κ°€ λ˜λŠ” 것은 μ—†λ‹€λŠ” λœ»μ΄λ‹€. 

 

λ‹€μŒ 5자리 μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ 15λ‹€ λ˜λŠ” μˆ˜κ°€ μžˆλŠ”μ§€ 확인해본닀면 

1️⃣ 2️⃣ 3️⃣ 4️⃣ 5️⃣ 

15 μ—μ„œ 15λ₯Ό λΉΌλ©΄ 0이기 λ•Œλ¬Έμ— 0 μ—μ„œ 5λ₯Ό λ‚˜λˆ„λ©΄ 0μ΄λ―€λ‘œ μ—°μ†λœ μžμ—°μˆ˜μ˜ 합이 15κ°€ λœλ‹€λŠ” 것이닀. 

 

μ΄λŸ°μ‹μœΌλ‘œ μˆ˜ν•™μ  λ°©μ‹μœΌλ‘œ μ ‘κ·Όν•΄μ„œ 문제λ₯Ό ν’€ 수 도 μžˆλ‹€λŠ” 것이닀. 

 

 

 

 

 

 

 

728x90