[백준] 1159번. 농구 경기 (C언어)

윤라이트·2023년 10월 17일

백준 코딩테스트

목록 보기
5/25

자! 어제 밤에 문제를 풀고 다음 문제로 농구 경기를 선택했다. 브론즈 2문제이다. 그런데 사실 전에 생각보다 복잡해 보여서 건너 뛰었다가 그냥 하기로 했다. 그렇게 푸는데 겁나게 안 풀리는 겨!!! 계속 멀쩡한데 에러 뜨고..... 그렇게 잠을 잤다.

다음 날 오전 수업을 끝내고 도서관에서 푸는데 자기 전에 생긴 에러의 원인을 알아냈다.
Chat GPT를 통해서야,,,,

char형 2차원 배열을 입력 받고 0행의 값을 출력 시키는 부분에서
계속 에러가 발생했다. 사실 난 거기서 에러가 발생하는 줄 모르고 오만저만 코드를
테스트 해보다가 결국 우리 피티 피티 지피티에게 물어봤더니...

완전 어이가 없더라...
오타였어..ㅋㅋㅋㅋㅋㅋㅋ
근데 우리 지티가 응원해주넹...ㅠ..
꼬마워~

무튼 그렇게 해결하니 아주 간단한 문제였음!
이제 시작하지 !




[백준] 1159번. 농구 경기


[브론즈 2]

  • 입력 값 : 첫째 줄엔 선수의 수 N, 다음 N개의 줄에는 각 선수의 성이 주어짐. (알파벳 소문자, 최대 30글자)
  • 출력 값 : 선발 가능 선수의 첫 글자 출력. 선수 5명 선발 못할 시 "PREDAJA" 출력.

아래는 내가 작성한 코드이다.
#include<stdio.h>
#include<string.h>

int main(void) {

    int num, num1, apb[26] = { 0 };
    char player[150][30] = { 0 };
    int count = 0;

    scanf("%d", &num);

    for (int i = 0; i < num; i++) {
        scanf("%s", player[i]);
    }

    for (int i = 0; i < num; i++) {
        apb[player[i][0] - 97]++;
    }

    for (int i = 0; i < 26; i++) {
        if (apb[i] >= 5) {
            printf("%c", i + 97);
            count++;
        } 
    }
    if (count < 1) {
        printf("PREDAJA");
    }

    return 0;
}

매우 간단하죠?

내가 코딩 문제를 푸는 방식은 아이패드 굿노트에 문제의 알고리즘을 작성하는 것이다.
원래는 무작정 머릿 속에서만 정리하고 해결 했었는데 그러기엔 너무 머릿 속이 복잡해져서 한 단계 나아갔음에도 불구하고 다시 Back!!! 한다....

유튜브에서 코딩 테스트할 때 시간 절약하는 팁을 알려주셨는데 역시 종이가 필요해!!
몰랐는데 원래 코테할 때 종이 써도 되나 봄.ㅎ

무튼 아이패드로 작성한 나의 메모!!

뭐 대충 이런 식...
알고리즘이라기에 생각보다 뭐가 없군..
근데 저건 문제 풀기 전에 잠시 생각 정리한 거라 코딩하면서 바뀜.

아 이거 쓰는데 생각보다 오래 걸리네.
내가 말이 많은 것도 있겠다...
흠...

어쨌든 난!!!

  1. 선수 인원 입력 받기
  2. for문으로 인원 수만큼 2차원 배열로 이름 입력 받기
  3. 선수들의 성 첫 글자 알파벳의 개수를 증가 시켜주기 위한 배열을 생성. 'a'의 아스키코드 값 97을 빼주면 .... 아 말 드릅게 못하네 패스
  4. 그렇게 if문을 사용해서 알파벳 5개 이상 쓰인 성 첫 글자를 출력한다.
    -> 97을 더해서 문자로 출력하면 해당 성 첫 글자 알파벳이 나옴.

자자. 이제 다음 문제 풀자! 화이링~

profile
끝까지 가보자9~!!!🔥✨💡

0개의 댓글