-
[μκ° μ½λ© μ±λ¦°μ§] νμ ν°λ¨λ¦¬κΈ° - Level3곡λΆ/μκ³ λ¦¬μ¦ 2022. 11. 25. 19:32728x90
πλ¬Έμ μ€λͺ
μΌλ ¬λ‘ λμ΄λ nκ°μ νμ μ΄ μμ΅λλ€. λͺ¨λ νμ μλ μλ‘ λ€λ₯Έ μ«μκ° μ¨μ Έ μμ΅λλ€. λΉμ μ λ€μ κ³Όμ μ λ°λ³΅νλ©΄μ νμ λ€μ λ¨ 1κ°λ§ λ¨μ λκΉμ§ κ³μ ν°νΈλ¦¬λ €κ³ ν©λλ€.- μμμ μΈμ ν λ νμ μ κ³ λ₯Έ λ€, λ νμ μ€ νλλ₯Ό ν°νΈλ¦½λλ€.
- ν°μ§ νμ μΌλ‘ μΈν΄ νμ λ€ μ¬μ΄μ λΉ κ³΅κ°μ΄ μκ²Όλ€λ©΄, λΉ κ³΅κ°μ΄ μλλ‘ νμ λ€μ μ€μμΌλ‘ λ°μ°©μν΅λλ€.
μ¬κΈ°μ μ‘°κ±΄μ΄ μμ΅λλ€. μΈμ ν λ νμ μ€μμ λ²νΈκ° λ μμ νμ μ ν°νΈλ¦¬λ νμλ μ΅λ 1λ²λ§ ν μ μμ΅λλ€. μ¦, μ΄λ€ μμ μμ μΈμ ν λ νμ μ€ λ²νΈκ° λ μμ νμ μ ν°νΈλ Έλ€λ©΄, κ·Έ μ΄νμλ μΈμ ν λ νμ μ κ³ λ₯Έ λ€ λ²νΈκ° λ ν° νμ λ§μ ν°νΈλ¦΄ μ μμ΅λλ€.
λΉμ μ μ΄λ€ νμ μ΄ μ΅νκΉμ§ λ¨μ μ μλμ§ μμλ³΄κ³ μΆμ΅λλ€. μμ μμ λ 쑰건λλ‘ νμ μ ν°νΈλ¦¬λ€ 보면, μ΄λ€ νμ μ μ΅νκΉμ§ λ¨μ μλ μμ§λ§, μ΄λ€ νμ μ λ¬΄μ¨ μλ₯Ό μ°λλΌλ λ§μ§λ§κΉμ§ λ¨κΈ°λ κ²μ΄ λΆκ°λ₯ν μλ μμ΅λλ€.
μΌλ ¬λ‘ λμ΄λ νμ λ€μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ aκ° μ£Όμ΄μ§λλ€.
μμ μμ λ κ·μΉλλ‘ νμ λ€μ 1κ°λ§ λ¨μ λκΉμ§ ν°νΈλ Έμ λ μ΅νκΉμ§ λ¨κΈ°λ κ²μ΄ κ°λ₯ν νμ λ€μ κ°μλ₯Ό return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ ν μ¬ν- aμ κΈΈμ΄λ 1 μ΄μ 1,000,000 μ΄νμ
λλ€.
- a[i]λ i+1 λ²μ§Έ νμ μ μ¨μ§ μ«μλ₯Ό μλ―Έν©λλ€.
- aμ λͺ¨λ μλ -1,000,000,000 μ΄μ 1,000,000,000 μ΄νμΈ μ μμ λλ€.
- aμ λͺ¨λ μλ μλ‘ λ€λ¦ λλ€.
μ μΆλ ₯ μa result [9,-1,-5] 3 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6
μ μΆλ ₯ μ μ€λͺμ μΆλ ₯ μ #1
- 첫 λ²μ§Έ νμ (9κ° μ¨μ§ νμ )μ μ΅νκΉμ§ λ¨κΈ°λ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
- [9, -1, -5] μμ -1, -5κ° μ¨μ§ νμ μ κ³ λ₯Έ λ€, -1μ΄ μ¨μ§ νμ (λ²νΈκ° λ ν° κ²)μ ν°νΈλ¦½λλ€.
- [9, -5] μμ 9, -5κ° μ¨μ§ νμ μ κ³ λ₯Έ λ€, -5κ° μ¨μ§ νμ (λ²νΈκ° λ μμ κ²)μ ν°νΈλ¦½λλ€.
- λ λ²μ§Έ νμ (-1μ΄ μ¨μ§ νμ )μ μ΅νκΉμ§ λ¨κΈ°λ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
- [9, -1, -5] μμ 9, -1μ΄ μ¨μ§ νμ μ κ³ λ₯Έ λ€, 9κ° μ¨μ§ νμ (λ²νΈκ° λ ν° κ²)μ ν°νΈλ¦½λλ€.
- [-1, -5] μμ -1, -5κ° μ¨μ§ νμ μ κ³ λ₯Έ λ€, -5κ° μ¨μ§ νμ (λ²νΈκ° λ μμ κ²)μ ν°νΈλ¦½λλ€.
- μΈ λ²μ§Έ νμ (-5κ° μ¨μ§ νμ )μ μ΅νκΉμ§ λ¨κΈ°λ λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€.
- [9, -1, -5] μμ 9, -1μ΄ μ¨μ§ νμ μ κ³ λ₯Έ λ€, 9κ° μ¨μ§ νμ (λ²νΈκ° λ ν° κ²)μ ν°νΈλ¦½λλ€.
- [-1, -5] μμ -1, -5κ° μ¨μ§ νμ μ κ³ λ₯Έ λ€, -1μ΄ μ¨μ§ νμ (λ²νΈκ° λ ν° κ²)μ ν°νΈλ¦½λλ€.
- 3κ°μ νμ μ΄ μ΅νκΉμ§ λ¨μ μ μμΌλ―λ‘, 3μ return ν΄μΌ ν©λλ€.
μ μΆλ ₯ μ #2
- μ΅νκΉμ§ λ¨μ μ μλ νμ μ -16, -92, -71, -68, -61, -33μ΄ μ¨μ§ νμ μΌλ‘ λͺ¨λ 6κ°μ λλ€.
π μ²μ μκ°ν μμ΄λμ΄
μ²μμ λ¨κΈΈ μ μλ κ²½μ°μ μλ₯Ό λ€ κ΅¬ν΄μΌ νλ?λΌκ³ μκ°μ΄ λ€μ΄ λ§λ§νλ€.
μμΌλ‘ μ μ΄κ°λ©° κ²½μ°μ μλ₯Ό λλκ³ μλ€κ° μ΄κ±΄ λμ ν μλ κ² κ°μμ
μ§λ¬ΈνκΈ°μμ λκ΅°κ° λ¨κ²¨μ£Όμ μ κ·Όλ²μ 보κ²λμλ€.
λκΉμ§ λ¨κΈ°λ €λ νμ μ κΈ°μ€μΌλ‘ μ’, μ° κ΅¬κ°μ μ΅μκ°μ ꡬνμ λ
ν°λ¨λ¦¬λ €λ νμ μ κ°μ λ μ΅μκ°λ³΄λ€ ν¬μ§ μμμΌ ν©λλ€.
ν λ²μ μμ νμ μ ν°νΈλ¦΄ μ μκΈ° λλ¬Έμ ν°νΈλ¦¬λ €λ νΈμ μ΄
μ’, μ° μ΅μκ° μ€ νλ보λ€λ ν΄ μ μμ΄λ, λ λ³΄λ€ μ»€λ²λ¦¬λ©΄ λ¨κΈΈ μ μμ΅λλ€.
Only one max = ν° μλ νλκΉμ§λ§ νμ©
μ’μμ μ°λ‘ μ΅μκ°μ κ°±μ νλ©° λ°°μ΄μ λ£κ³ , μ°μμ μ’λ‘ λμΌνκ² ν΄ μ£Όκ³
λ§μ§λ§μ λ μ΅μκ°λ³΄λ€ ν¬μ§ μλ 보면μ νμΈν΄μ€λλ€.λΌλ κΈμμ ννΈλ₯Ό μ»μλ€.
μ²μ¬..!!
λ°°μ΄ μ€ μ²μκ³Ό λ νμ μ 무쑰건 λκΉμ§ λ¨κΈΈ μ μλ€.
κ·Έλ λ€λ©΄ κ·Έ μ¬μ΄ κ°μ κ²μ¬ν΄μΌνλλ°,
νμ¬ κ²μ¬νλ μ¬μ΄κ°μ AλΌκ³ νκ² λ€.
κ·Έλ¦¬κ³ μ’μ° κ°μ κ°κ° l_min, r_minκ°μ΄λΌκ³ νκ² λ€.
Aκ° l_min, r_min λ³΄λ€ ν° κ²½μ°λ§ λ¨κΈΈ μ μλ€.
μλ? μΈμ ν λ νμ μ€μμ λ²νΈκ° λ μμ νμ μ ν°νΈλ¦¬λ νμλ μ΅λ 1λ²λ§ ν μ μκΈ° λλ¬Έμ΄λ€.
l_min, A , r_min μ΄λ κ² νμ μ΄ μ‘΄μ¬ν λ
l_min, r_minr_min μ€ μ΄λ€ κ°μ ν°νΈλ €λ 무쑰건 Aλ₯Ό ν°νΈλ €μΌ νλ μν©μ΄ μ¨λ€.
κ·Έλ κΈ° λλ¬Έμ Aλ₯Ό λ¨κΈ°λ €λ©΄ Aκ° κ°μ§ κ°μ΄
- l_min < A < r_min
- r_min < A < l_min
- A < r_min , l_min
μ΄μ¬μΌ λ¨κΈΈ μ μμΌλ©°
A > l_min, r_min μ΄λ©΄ λΆκ°λ₯νλ€.
βοΈ μμ±ν μ½λ
package monthly_coding_challenge; public class νμ ν°λ¨λ¦¬κΈ° { public int solution(int[] a) { int answer = 2; int l_min = a[0]; int r_min = a[a.length-1]; int x = 1, y = a.length-2; for(int i =1;i<a.length-1;i++) { if(l_min > r_min) { // ν°κ°λ³΄λ€ a[]κ°μ΄ λ ν¬λ©΄ a[] κ°μ λ¨κΈΈ μ μμ if(l_min > a[x]) { answer++; l_min = a[x]; } x++; }else { if(r_min>a[y]) { answer++; r_min = a[y]; } y--; } } return answer; } } /* μ νμ± ν μ€νΈ ν μ€νΈ 1 γ ν΅κ³Ό (0.02ms, 72.9MB) ν μ€νΈ 2 γ ν΅κ³Ό (0.01ms, 72.5MB) ν μ€νΈ 3 γ ν΅κ³Ό (0.04ms, 76.6MB) ν μ€νΈ 4 γ ν΅κ³Ό (1.96ms, 83.5MB) ν μ€νΈ 5 γ ν΅κ³Ό (4.15ms, 121MB) ν μ€νΈ 6 γ ν΅κ³Ό (6.52ms, 118MB) ν μ€νΈ 7 γ ν΅κ³Ό (8.56ms, 130MB) ν μ€νΈ 8 γ ν΅κ³Ό (7.22ms, 138MB) ν μ€νΈ 9 γ ν΅κ³Ό (4.86ms, 125MB) ν μ€νΈ 10 γ ν΅κ³Ό (4.98ms, 128MB) ν μ€νΈ 11 γ ν΅κ³Ό (9.68ms, 122MB) ν μ€νΈ 12 γ ν΅κ³Ό (10.79ms, 139MB) ν μ€νΈ 13 γ ν΅κ³Ό (9.35ms, 133MB) ν μ€νΈ 14 γ ν΅κ³Ό (11.88ms, 129MB) ν μ€νΈ 15 γ ν΅κ³Ό (8.74ms, 142MB) μ±μ κ²°κ³Ό μ νμ±: 100.0 ν©κ³: 100.0 / 100.0 */π μκ² λ μ
λ€λ₯Έ μ¬λ νμ΄ μ€ μ΄λ§λ₯Ό ν μΉκ² λ π₯π₯
public int solution(int[] a) { int answer = 0; int min1 = Integer.MAX_VALUE; int min2 = Integer.MAX_VALUE; HashSet<Integer> hs = new HashSet<>(); // int[][] dp=new int[a.length][2]; for(int i=0;i<a.length;i++){ min1=Math.min(min1,a[i]); min2=Math.min(min2,a[a.length-1-i]); hs.add(min1); hs.add(min2); // dp[i][0]=min1; // dp[a.length-1-i][1]=min2; } // for(int i=0;i<dp.length;i++){ // System.out.println(dp[i][0]+" "+dp[i][1]); // } return hs.size(); }νλ μ½λ©νλ λ°©μμΌλ‘ μ κ·Όνμ§ λ§κ³
κ·μΉμ μ°Ύμ보μ.'κ³΅λΆ > μκ³ λ¦¬μ¦' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Summer/Winter Coding(~2018)] μμ λ§λ€κΈ° - Level1 (1) 2022.11.25 [Summer/Winter Coding] μμ° (0) 2022.11.25 [μκ° μ½λ© μ±λ¦°μ§] λ κ° λ½μμ λνκΈ° - Level1 (0) 2022.11.25 [μκ° μ½λ μ±λ¦°μ§] κ΄νΈ νμ νκΈ° (1) 2022.11.25 [Greedy | νμλ² ] μ‘°μ΄μ€ν± - Level2 (0) 2022.11.25