https://programmers.co.kr/learn/courses/30/lessons/12912

 

μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅ - 두 μ •μˆ˜ μ‚¬μ΄μ˜ ν•© | ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

두 μ •μˆ˜ a, bκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ a와 b 사이에 μ†ν•œ λͺ¨λ“  μ •μˆ˜μ˜ 합을 λ¦¬ν„΄ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•˜μ„Έμš”. 예λ₯Ό λ“€μ–΄ a = 3, b = 5인 경우, 3 + 4 + 5 = 12μ΄λ―€λ‘œ 12λ₯Ό λ¦¬ν„΄ν•©λ‹ˆλ‹€. μ œν•œ 쑰건 a와 bκ°€ 같은 κ²½μš°λŠ” λ‘˜ 쀑 아무 μˆ˜λ‚˜ λ¦¬ν„΄ν•˜μ„Έμš”. a와 bλŠ” -10,000,000 이상 10,000,000 μ΄ν•˜μΈ μ •μˆ˜μž…λ‹ˆλ‹€. a와 b의 λŒ€μ†Œκ΄€κ³„λŠ” μ •ν•΄μ Έμžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μž…μΆœλ ₯ 예 a b return 3 5 12 3 3 3 5 3

programmers.co.kr

 

 

처음 ν‘Ό 풀이

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
  public long solution(int a, int b) {
      long answer = 0;
      
      if(a<b){//aκ°€ b보닀 μž‘을 λ•Œ
          
          for(int i=a; i<=b ; i++){
              answer+=i;    
          }
      }else if(a>b){//aκ°€ b보닀 ν΄ λ•Œ
          
          for(int i=b; i<=a ; i++){
              answer+=i;
          }
      }else{//a=bκ°€ κ°™μ„ λ•Œ
          answer=a;
      }
      
      
      return answer;
  }
}
cs

생각과정

- aκ°€ b보닀 μž‘μ„ λ•Œ, 클 λ•Œ, 같을 λ•Œ 둜 λ‚˜λˆˆλ‹€.

- aκ°€ b보닀 μž‘μ„ λ•ŒλŠ” for의 λ²”μœ„λ₯Ό for(int i=b; i<=a ; i++)둜 μž‘μ•„ a둜 μ‹œμž‘ν•΄μ„œ ν•˜λ‚˜μ”© 늘렀 bκΉŒμ§€ answer에 더해쀀닀.

- aκ°€ b보닀클 λ•Œ λŠ” for의 λ²”μœ„λ₯Ό for(int i=b; i<=a ; i++) 둜 μž‘μ•„ b둜 μ‹œμž‘ν•΄μ„œ ν•˜λ‚˜μ”© 늘렀 aκΉŒμ§€ answer에 더해쀀닀.

- κ°™μ„λ•ŒλŠ” λ‘˜μ€‘μ— μ•„λ¬΄κ°’μ΄λ‚˜ ν•˜λ‚˜ λ°˜ν™˜ν•΄μ€€λ‹€.

 

2. λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이λ₯Ό 보고 ν‘Ό 풀이

1
2
3
4
5
6
7
8
9
10
class Solution {
  public long solution(int a, int b) {
      long answer = 0;
      
      for(int i= (a>b ? b : a); i<=(a>b ? a : b); i++)    //μ‚Όν•­μ—°μ‚°μž 
          answer+=i;
      
      return answer;
  }
}
cs

- forλ¬Έ μ•ˆμ— μ‚Όν•­μ—°μ‚°μžλ₯Ό μ΄μš©ν•˜μ—¬ ν’€μ΄ν–ˆλ‹€.

- λ‚˜μ€‘μ— λ‹€λ₯Έ λ¬Έμ œμ—μ„œλ„ μ‚¬μš© 해봐야겠닀.

+ Recent posts