C#/복습 필요

C# - 거스름돈

게임 개발은 즐거워 2025. 10. 7. 20:31

- 개선 사항 : 변수명 수정한다면 ! 

 

 

틀린 것 1.

/= : 나눗셈 후 할당

=/ : 존재하지 않는 연산자 

 

틀린 것 2. 

foreach : 컬렉션을 순회할 때 사용 (foreach num in nums)

-> 내가 하고 싶었던 것 : while 

 

3. return : 한 번만 계산하고 끝냄

-> continue를 사용하거나, return을 제거하거나

 

4. 조건문 : remain > 500이 아니라, remain >= 500으로 해야함 

 

5. 몫 : / 로 구하고, 나머지는 %로 구해야함 

 

6. intInput지불 금액, remain(뺀 값)이랑 잘 구분해서 사용하기

 

7. return count; 위치

while 루프 안 -> 도달할 수 없음 

=> while 밖으로 빼야 함 

 

8. while 조건 

remain > 0 : 잔돈이 남아있을 때까지 

 

9. count 증가 로직 

내 로직 

remain %= 500;  // 나머지만 구함
count++;        // 무조건 1만 증가

 

올바른 로직

count += remain / 500;  // 500원짜리 개수를 더함
remain %= 500;          // 나머지로 갱신

 

10. continue 불필요

-> if-else 구조라서 한 번에 하나만 실행되고, while 처음으로 돌아감 

=> continue 불

 

제일 처음 작성한 답

// 입력 : 지불하는 금액
// 출력 : 받을 잔돈(1000에서 빼기)에 포함된 잔돈의 개수 
// 500, 100, 50, 10, 5, 1
// 380 : 620 -> 500 1, 100 1, 10 2 
string input = Console.ReadLine();
int intInput = int.Parse(input);
int remain = 1000 - intInput;
int answer = 0;
// 가장 작은 수 보다 작을 때까지 
foreach (intInput < 1)
{
    if (remain > 500)
    {
        remain =/ 500;
        count++;
        // return은 아예 밖으로 나가는 거고, 뭐해야하지? 
        return;
    }

    else if (remain > 100)
    {
        remain =/ 100;
        count++;
        return;
    }

    else if (remain > 50)
    {
        remain =/ 50;
        count++;
        return;
    }

    else if (remain > 10)
    {
        remain =/ 10;
        count++;
        return;
    }

    else if (remain > 5)
    {
        remain =/ 5;
        count++;
        return;
    }

    else
    {
        remain =/ 1;
        count++;
        return;
    }

    return answer;
}

'C# > 복습 필요' 카테고리의 다른 글

[C#]분수의 덧셈(프로그래머스) - 복습 필요(9/8)  (0) 2025.08.04