μΌ | μ | ν | μ | λͺ© | κΈ | ν |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- μλ°μ€ν¬λ¦½νΈ
- Algorithm
- λμ νλ‘κ·Έλλ°
- νλ‘κ·Έλλ¨Έμ€
- μΌμ±swμν
- λ°±μ€
- λ¬Έμμ΄ νμ±
- λͺ»κ·Έλ¦¬μ§λ§
- κ·Έλν νμ
- programmers
- μλ£κ΅¬μ‘°
- μ½λνΈλ¦¬
- Java
- BFS
- Flutter
- DART
- c#
- JS
- ꡬν
- μ€ν°λ
- μ°μ ¨μμ
- νμ΄μ¬
- μ΄μ§νμ
- DP
- JavaScript
- μκ³ λ¦¬μ¦
- sort
- μΉ΄μΉ΄μ€
- BAEKJOON
- μ½λ©ν μ€νΈ
- Today
- Total
Algo μ°μ
[Programmers] λ©μ©‘ν μ¬κ°ν λ³Έλ¬Έ
βΆ λ¬Έμ : https://programmers.co.kr/learn/courses/30/lessons/62048
βΆ μ½λ :
function solution(w, h) {
const total = w * h;
const g = gcd(w, h); // g μ¦, μ΅λ곡μ½μλ λκ°μ μΌλ‘ λλμμλ λ°λ³΅λλ μ¬κ°νννκ° λ±μ₯νλ νμμ΄λ€.
const miniSquare = w/g + h/g - 1; // κ°κ°μ μμ μ¬κ°νμ κ°λ‘λ₯Ό gλ‘ λλκ°κ³Ό μΈλ‘λ₯Ό gλ‘ λλκ°μμ 1(μ€λ³΅ν΄μ μλ₯΄λ μ¬κ°ν)μ λΊ κ°λ§νΌ μ¬κ°νμ μ§μ΄λ€.
return total - (g * miniSquare);
}
function gcd(a,b){
if(b === 0){
return a;
}else{
return gcd(b, a % b);
}
}
βΆ λ¬Έμ νμ΄ :
- ν΄λΉ λ¬Έμ λ 'λ©μ©‘ν μ¬κ°ν νμ΄' λ₯Ό μ°Έκ³ νμ¬ νμ΄νμλ€.
1. μ 체 μ¬κ°νμμ μ리λ μ¬κ°νμ μλ₯Ό μΈμ΄μΌ νλ€. (μ΄λ, μ 체μ¬κ°νμ μ§μ¬κ°νμ΄λΌλ μ μ μ‘°κ±΄μ΄ λ¬Έμ μ μλ€.)
2. μ 체 μ¬κ°νμμ μ리λ μ¬κ°ν(μ리λ μμ)μ λ°λ³΅λλ ννλ₯Ό κ°μ§λλ°, μ΄λ λ°λ³΅λλ νμλ GCD(μ΅λ곡μ½μ) λ² λ±μ₯νλ€.
3. μΆκ°μ μΌλ‘ μ리λ μμμ μμ μ¬κ°νμ΄ μ΅λ곡μ½μ λ² λ±μ₯νλ€λ©΄ νλμ μμ μμ μ¬κ°ν λ΄λΆμμ μ리λ μ¬κ°νμ κ°μλ μ΄λ»κ² ꡬν κΉ?
- μμ μ¬κ°νμ ν¬κΈ°λ (w // g) * (h // g) μ΄λ€. μ΄λ κ°κ°μ μ¬κ°νμ λν΄ λκ°μ μ κ·Έμμλ (μμ μ¬κ°νμ κ°λ‘) κ°, (μμ μ¬κ°νμ μΈλ‘) κ° μ© λλλ€. νμ§λ§ μ΄λ κ°λ‘μ μΈλ‘μ λν΄ μ€λ³΅μΌλ‘ μΉ΄μ΄ν νλ μΉΈ(μ²μ μμμΉΈ) μ λν 1μ λΉΌμ£Όμ΄μΌνλ€.
4. μ§κΈ κΉμ§μ λ§μ μ 리ν΄λ³΄λ©΄ μ 체 μ¬κ°νμ ν¬κΈ° (w * h) μμ gcd(μμ μ¬κ°νμ λ±μ₯ νμ) * miniSquare(μμ μ¬κ°νμμ λκ°μ μ μν΄ μ μΈλλ μ¬κ°νμ μ)λ₯Ό λΉΌμ£Όμ΄μΌ νκ³ miniSquareμ μλ "(w / g) + (h /g) - 1" μ΄ λλ€λ κ²μ΄λ€.
5. λ°λΌμ μ 체 μμ `(w * h) - gcd * (w/g + h/g - 1)` μ΄ λμ΄μΌ νλ€λ μλ―Έμ΄λ€.
6. gcd() ν¨μλ 'μ ν΄λ¦¬λ νΈμ ' λ₯Ό μ°Έκ³ ν΄ κ΅¬ννμμΌλ©° κ°κ°μ μ‘°ν©νμ¬ κ²°κ³Όλ₯Ό μΆλ ₯ν΄μ£Όλ©΄ λλ λ¬Έμ μλ€.
'π― CodingTest > Programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Programmers] 124 λλΌμ μ«μ (0) | 2022.06.11 |
---|---|
[Programmers] (Javascript) μμ κ²μ (2) | 2022.05.02 |
[Programmers] (Javascript) λ©λ΄ 리λ΄μΌ (0) | 2022.04.28 |
[Programmers] (Javascript) μΆμ νΈλν½ (0) | 2022.04.26 |
[Programmers] (Javascript) νν (0) | 2022.04.25 |