μžλ°” μ•Œκ³ λ¦¬μ¦˜ 문제 풀이 μž…λ¬Έ. μ„Ήμ…˜2. Array(1, 2차원 λ°°μ—΄) : μž„μ‹œ 반μž₯ μ •ν•˜κΈ°

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

728x90

 

https://hyejin.tistory.com/1218

 

μžλ°” μ•Œκ³ λ¦¬μ¦˜ 문제 풀이 μž…λ¬Έ. μ„Ήμ…˜2. Array(1, 2차원 λ°°μ—΄) : λ΄‰μš°λ¦¬

https://hyejin.tistory.com/1217 μžλ°” μ•Œκ³ λ¦¬μ¦˜ 문제 풀이 μž…λ¬Έ. μ„Ήμ…˜2. Array(1, 2차원 λ°°μ—΄) : 격자판 μ΅œλŒ€ν•© https://hyejin.tistory.com/1216 μžλ°” μ•Œκ³ λ¦¬μ¦˜ 문제 풀이 μž…λ¬Έ. μ„Ήμ…˜2. Array(1, 2차원 λ°°μ—΄) : λ“±μˆ˜ κ΅¬ν•˜κΈ°

hyejin.tistory.com

-> 이전 문제 풀이 

 

 

 

 

11. μž„μ‹œ 반μž₯ μ •ν•˜κΈ° 

 

μ„€λͺ…

김갑동 μ„ μƒλ‹˜μ€ μ˜¬ν•΄ 6ν•™λ…„ 1반 λ‹΄μž„μ„ 맑게 λ˜μ—ˆλ‹€.

김갑동 μ„ μƒλ‹˜μ€ μš°μ„  μž„μ‹œλ‘œ 반μž₯을 μ •ν•˜κ³  학생듀이 μ„œλ‘œ μΉœμˆ™ν•΄μ§„ 후에 μ •μ‹μœΌλ‘œ μ„ κ±°λ₯Ό 톡해 반μž₯을 μ„ μΆœν•˜λ €κ³  ν•œλ‹€.

κ·ΈλŠ” 자기반 학생 μ€‘μ—μ„œ 1ν•™λ…„λΆ€ν„° 5ν•™λ…„κΉŒμ§€ μ§€λ‚΄μ˜€λ©΄μ„œ ν•œλ²ˆμ΄λΌλ„ 같은 λ°˜μ΄μ—ˆλ˜ μ‚¬λžŒμ΄ κ°€μž₯ λ§Žμ€ 학생을 μž„μ‹œ 반μž₯으둜 μ •ν•˜λ € ν•œλ‹€.

κ·Έλž˜μ„œ 김갑동 μ„ μƒλ‹˜μ€ 각 학생듀이 1ν•™λ…„λΆ€ν„° 5ν•™λ…„κΉŒμ§€ λͺ‡ λ°˜μ— μ†ν–ˆμ—ˆλŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” ν‘œλ₯Ό λ§Œλ“€μ—ˆλ‹€.

예λ₯Ό λ“€μ–΄ 학생 μˆ˜κ°€ 5λͺ…일 λ•Œμ˜ ν‘œλ₯Ό μ‚΄νŽ΄λ³΄μž.

μœ„ κ²½μš°μ— 4번 학생을 보면 3번 학생과 2ν•™λ…„ λ•Œ 같은 λ°˜μ΄μ—ˆκ³ , 3번 학생 및 5번 학생과 3ν•™λ…„ λ•Œ 같은 λ°˜μ΄μ—ˆμœΌλ©°,

2번 ν•™μƒκ³ΌλŠ” 4ν•™λ…„ λ•Œ 같은 λ°˜μ΄μ—ˆμŒμ„ μ•Œ 수 μžˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ 이 ν•™κΈ‰μ—μ„œ 4번 학생과 ν•œλ²ˆμ΄λΌλ„

같은 λ°˜μ΄μ—ˆλ˜ μ‚¬λžŒμ€ 2번 학생, 3번 학생과 5번 ν•™μƒμœΌλ‘œ λͺ¨λ‘ 3λͺ…이닀.

이 μ˜ˆμ—μ„œ 4번 학생이 전체 학생 μ€‘μ—μ„œ 같은 λ°˜μ΄μ—ˆλ˜ 학생 μˆ˜κ°€ 제일 λ§ŽμœΌλ―€λ‘œ μž„μ‹œ 반μž₯이 λœλ‹€.

각 학생듀이 1ν•™λ…„λΆ€ν„° 5ν•™λ…„κΉŒμ§€ μ†ν–ˆλ˜ 반이 μ£Όμ–΄μ§ˆ λ•Œ, μž„μ‹œ 반μž₯을 μ •ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

 

μž…λ ₯

첫째 μ€„μ—λŠ” 반의 학생 수λ₯Ό λ‚˜νƒ€λ‚΄λŠ” μ •μˆ˜κ°€ 주어진닀. 학생 μˆ˜λŠ” 3 이상 1000 μ΄ν•˜μ΄λ‹€.

λ‘˜μ§Έ μ€„λΆ€ν„°λŠ” 1번 학생뢀터 μ°¨λ‘€λŒ€λ‘œ 각 μ€„λ§ˆλ‹€ 1ν•™λ…„λΆ€ν„° 5ν•™λ…„κΉŒμ§€ λͺ‡ λ°˜μ— μ†ν–ˆμ—ˆλŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚΄λŠ” 5개의 μ •μˆ˜κ°€ 빈칸 ν•˜λ‚˜λ₯Ό 사이에 두고 주어진닀.

μ£Όμ–΄μ§€λŠ” μ •μˆ˜λŠ” λͺ¨λ‘ 1 이상 9 μ΄ν•˜μ˜ μ •μˆ˜μ΄λ‹€.

 

좜λ ₯

첫 쀄에 μž„μ‹œ 반μž₯으둜 정해진 ν•™μƒμ˜ 번호λ₯Ό 좜λ ₯ν•œλ‹€.

단, μž„μ‹œ 반μž₯이 될 수 μžˆλŠ” 학생이 μ—¬λŸ¬ λͺ…인 κ²½μš°μ—λŠ” κ·Έ 쀑 κ°€μž₯ μž‘μ€ 번호만 좜λ ₯ν•œλ‹€.

 

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

5
2 3 1 7 3
4 1 9 6 8
5 5 2 4 4
6 5 2 6 7
8 4 2 2 2

 

μ˜ˆμ‹œ 좜λ ₯ 1

4

 

 

문제 풀이 1

public int solution2(int n, int[][] arr)
{
   int answer = 0, max = Integer.MIN_VALUE;
   for (int i = 1; i <= n; i++)
   {
      int cnt = 0;
      for (int j = 1; j <= n; j++)
      {
         for (int k = 1; k <= 5; k++)
         {
            if (arr[i][k] == arr[j][k]) {
               cnt++;
               break;
            }
         }
      }
      
      if (max < cnt) {
         max = cnt;
         answer = i;
      }
   }
   return answer;
}

πŸ‘Ύ : 이 λ¬Έμ œλŠ”.. 계속 κ³ λ―Όν•΄λ΄€λŠ”λ° λ„μ €νžˆ μ•ˆν’€λ €μ„œ κ²°κ΅­ λͺ» ν’€κ³  κ°•μ˜λ₯Ό λ“€μ—ˆλ‹€ γ…  κ°•μ˜ λ“£κ³  λ³΄λ‹ˆ μ΄λ ‡κ²Œ μ‰¬μš΄ λ¬Έμ œμ˜€λ‹€λ‹ˆ...이런 문제 ν•΄κ²°λ ₯은 μ–΄λ–»κ²Œ κΈ°λ₯΄λŠ”거냐고 γ…  

μ•„λ¬΄νŠΌ.. 이 λ¬Έμ œλŠ” 6ν•™λ…„μ˜ μž„μ‹œλ°˜μž₯을 κ³ λ₯΄λŠ”데 λ‹€λ₯Έ 학생과 같은 반이 κ°€μž₯ 많이 된 학생을 μž„μ‹œλ°˜μž₯으둜 μ„ μΆœν•˜λŠ” 것이닀. 근데 μ΄λ•Œ 같은 λ°˜μ„ μ—¬λŸ¬λ²ˆ ν•œ 학생은 1번만 μΉ΄μš΄νŠΈν•΄μ•Ό ν•œλ‹€. 

 

λ¬Έμ œλŠ” 3쀑 for문으둜 ν‘ΈλŠ”λ° i μ—λŠ” κ³ μ • 학생, jμ—λŠ” i와 비ꡐ할 학생듀, kλŠ” 학년을 μ˜λ―Έν•œλ‹€. 

for문을 λŒλ©΄μ„œ arr[i][k] 학생과 arr[j][k] 학생이 같은 반이면 cntλ₯Ό 1 μ¦κ°€μ‹œμΌœμ£ΌλŠ”λ°, μ΄λ•Œ i와 jκ°€ 같은 λ°˜μ„ μ—¬λŸ¬λ²ˆ ν•  수 도 μžˆμœΌλ‹ˆ ν•œλ²ˆλ§Œ μΉ΄μš΄νŠΈν•˜κΈ° μœ„ν•΄μ„œ break을 κ±Έμ–΄μ€€λ‹€. 

 

κ·Έ λ‹€μŒ i 학생과 j 학생듀을 λΉ„κ΅ν•œ cntκ°€ max값보닀 크면 κ·Έ 학생이 λ‹€λ₯Έ 학생듀과 κ°€μž₯ 많이 반이 κ²ΉμΉ˜λŠ” ν•™μƒμ΄λ―€λ‘œ answerλ₯Ό 리턴해주면 λœλ‹€. 

 

 

 

 

 

 

 

 

 

 

 

728x90