SWLUG/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ (C)

[C] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ_7์ฃผ์ฐจ ๋ฌธ์ œ 3: ์‚ผ๊ฐํ˜•์˜ ์™„์„ฑ ์กฐ๊ฑด (1)

waterproof 2023. 8. 20. 12:12

 

 

 


๋ฌธ์ œ ์„ค๋ช…

์„ ๋ถ„ ์„ธ ๊ฐœ๋กœ ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋Š” ๋‹ค๋ฅธ ๋‘ ๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ๋ณด๋‹ค ์ž‘์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

์‚ผ๊ฐํ˜•์˜ ์„ธ ๋ณ€์˜ ๊ธธ์ด๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด sides์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์„ธ ๋ณ€์œผ๋กœ ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค๋ฉด 1, ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋ฉด 2๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • sides์˜ ์›์†Œ๋Š” ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
  • sides์˜ ๊ธธ์ด๋Š” 3์ž…๋‹ˆ๋‹ค.
  • 1 ≤ sides์˜ ์›์†Œ ≤ 1,000

 

์ž…์ถœ๋ ฅ ์˜ˆ

sides result
[1, 2, 3] 2
[3, 6, 2] 2
[199, 72, 222] 1

 

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ๊ฐ€์žฅ ํฐ ๋ณ€์ธ 3์ด ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ 3๊ณผ ๊ฐ™์œผ๋ฏ€๋กœ ์‚ผ๊ฐํ˜•์„ ์™„์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๊ฐ€์žฅ ํฐ ๋ณ€์ธ 6์ด ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ 5๋ณด๋‹ค ํฌ๋ฏ€๋กœ ์‚ผ๊ฐํ˜•์„ ์™„์„ฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 2๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ #3

  • ๊ฐ€์žฅ ํฐ ๋ณ€์ธ 222๊ฐ€ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ 271๋ณด๋‹ค ์ž‘์œผ๋ฏ€๋กœ ์‚ผ๊ฐํ˜•์„ ์™„์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ 1์„ returnํ•ฉ๋‹ˆ๋‹ค.

 

 

 


[2] ์ •๋‹ต ๋ฐ ํ•ด์„

 

#.1 ์ •๋‹ต ์ฝ”๋“œ

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
 
int solution(int sides[], size_t sides_len) {
    int max_side = 0;
    int sum_of_other_sides = 0;
 
    // ๊ฐ€์žฅ ๊ธด ๋ณ€๊ณผ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.
    for (size_t i = 0; i < sides_len; i++) {
        if (sides[i] > max_side) {
            max_side = sides[i];
        }
        sum_of_other_sides += sides[i];
    }
    sum_of_other_sides -= max_side;
 
    // ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๊ฐ€ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    if (max_side < sum_of_other_sides) {
        return 1;
    } else {
        return 2;
    }
}
cs

 

#.2 ์ •๋‹ต ํ•ด์„


1. ํ•จ์ˆ˜ ์ •์˜:

int solution(int sides[], size_t sides_len)์€ ์„ธ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ๋ฐ›์•„์™€์„œ ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ํŒ๋‹จํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. sides ๋ฐฐ์—ด์€ ์„ธ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ๋‹ด๊ณ  ์žˆ๊ณ , sides_len์€ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

2. ๋ณ€์ˆ˜ ์„ ์–ธ ๋ฐ ์ดˆ๊ธฐํ™”:

max_side ๋ณ€์ˆ˜๋Š” ์„ธ ๋ณ€ ์ค‘ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋ฅผ ์ €์žฅํ•˜๊ณ , sum_of_other_sides ๋ณ€์ˆ˜๋Š” ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ์„ ์ €์žฅํ•œ๋‹ค.

3. ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•œ ๊ณ„์‚ฐ:

for ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ์„ธ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด์™€ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ์„ ๊ณ„์‚ฐํ•œ๋‹ค.

max_side๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•ด ๊ฐ ๋ณ€์˜ ๊ธธ์ด์™€ ๋น„๊ตํ•˜์—ฌ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.

sum_of_other_sides๋Š” ๋ชจ๋“  ๋ณ€์˜ ๊ธธ์ด๋ฅผ ๋”ํ•ด๋‚˜๊ฐ€๋ฉด์„œ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๋Š” ๋บ€๋‹ค.

4. ์‚ผ๊ฐํ˜• ํŒ๋‹จ:

๊ณ„์‚ฐํ•œ ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด์™€ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ๊ธธ์ด์˜ ํ•ฉ์„ ๋น„๊ตํ•˜์—ฌ, ๊ฐ€์žฅ ๊ธด ๋ณ€์˜ ๊ธธ์ด๊ฐ€ ๋‚˜๋จธ์ง€ ๋‘ ๋ณ€์˜ ํ•ฉ๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ด ๊ฒฝ์šฐ์—๋Š” ํ•จ์ˆ˜๊ฐ€ 1์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ, ์‚ผ๊ฐํ˜•์„ ๋งŒ๋“ค ์ˆ˜ ์—†๋Š” ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋ฏ€๋กœ ํ•จ์ˆ˜๊ฐ€ 2๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

5. ์ด ์ฝ”๋“œ์—์„œ ์‚ฌ์šฉ๋œ ๊ฐœ๋…:

  • ์กฐ๊ฑด๋ฌธ: if์™€ else๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์กฐ๊ฑด์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  • ๋ฐฐ์—ด: sides ๋ฐฐ์—ด์€ ์„ธ ๋ณ€์˜ ๊ธธ์ด๋ฅผ ์ €์žฅํ•˜๊ณ , ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ์— ์ ‘๊ทผํ•˜์—ฌ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๋ฐ˜๋ณต๋ฌธ: for ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.
  • ๋ณ€์ˆ˜: ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๊ฐ„ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  • ๋น„๊ต ์—ฐ์‚ฐ: '>' ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜๋“ค์˜ ๊ฐ’์„ ๋น„๊ตํ•œ๋‹ค.

 

 

 


[3] ๋Š๋‚€ ์ 

 

 

โœ”๏ธ ์กฐ๊ฑด๋ฌธ + ๋ฐ˜๋ณต๋ฌธ + ๋น„๊ต ์—ฐ์‚ฐ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ€์ˆ˜ ๊ฐ’์„ ๊ฐฑ์‹ ํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งœ๋Š” ๋ถ€๋ถ„์ด ๋Š˜ ํ—ท๊ฐˆ๋ฆฐ๋‹ค... ์—ฌ๊ธฐ์— ๋ฐฐ์—ด ๊ฐœ๋…๊นŒ์ง€ ๋”ํ•ด์ง€๋‹ˆ๊นŒ ๋” ์–ด๋ ต๊ฒŒ ๋Š๊ปด์ง„๋‹ค.