상세 컨텐츠

본문 제목

[백준] BOJ_2810번_컵홀더_C/C++

알고리즘/C

by 셉인 2022. 9. 5. 14:46

본문

728x90

2810번: 컵홀더 (acmicpc.net)

브론즈 1 문제

 

2810번: 컵홀더

첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다.

www.acmicpc.net

#include <stdio.h>

int main() {
    int N = 0;
    char cup[51];
    float count = 1;
    scanf("%d", &N);
    scanf("%s", &cup);
    for (int j = 0; j < N; j++) {
        if (cup[j] == 'S') {
            count += 1;
        }
        else if (cup[j] == 'L') {
            count += 0.5;
        }
    }
    if (N < count) {
        printf("%d", N);
    }
    else {
        printf("%d", count);
    }
    return 0;
}

이렇게 했는데 틀림이 떴다.. 왤까잇...

#include <stdio.h>

int main() {
    int N = 0;
    char cup[51];
    int count = 1;
    scanf("%d", &N);
    scanf("%s", &cup);
    for (int j = 0; j < N; j++) {
        if (cup[j] == 'S') {
            count ++;
        }
        else if (cup[j] == 'L') {
            count++;
            j++;
        }
    }
    if (N < count) {
        printf("%d", N);
    }
    else {
        printf("%d", count);
    }
    return 0;
}

<코드해석>

count는 1부터 시작해야한다. 왜냐하면 처음부터 가로등을 놓기 그런 문제처럼 1부터 1씩 증가해줘야한다.

%s를 이용해주면 반복문을 사용하지않아도 입력을 받을 수 있다.

맨처음에는 %c를 이용한 반복문으로 하려했는데. . 저게 훨씬 편한것같다.

S가 나오면 1을 증가해주고 L이 나오면 1을 증가해주고 j도 1을 증가해준다 왜냐하면 커플석이라 2명이서 1개 count가 올라가줘야해서 그러면 다음 세트가 나오게 해준다

위에서 틀린 코드에서는 이를 L이 나오면 0.5씩 더해주는 거로 했는데 왜 틀렸는지는 잘.. ㅎㅎ

근데 사람수보다 count가 크면안되니깐 사람수보다 클 경우 사람수를 출력해준다.

이렇게 해결하면 된다.

 

추가로 배열 공부를 해야할듯.. 까먹은것같다 ^^*

728x90

관련글 더보기

댓글 영역