본문 바로가기

코린이의 성장기/코린이의 백준 도전기

코린이의 백준 도전기 1일차

2023년 4월 22일의 기록

 

오늘 처음으로 티스토리로 기록을 하기 시작했다. 열심히 차근차근 공부해서 코딩 잘하는 사람이 되어보자.

 

한달만에 백준 들어가서 풀게 된 문제는 저번에 4번이나 도전했는데 실패했던 1008번 문제!

백준 1008번 문제

무려 6번만의 시도 끝에 맞추게 되었다.

단순히 정수 값을 받아서 A/B를 하게 된다면 첫번째 예제에서 0을 출력하게 된다. 그래서 그 다음에는 float형으로 출력했는데 그때도 실패하게 됨.

 

왜 계속 틀렸는지 몰라서 여러 시도 끝에 정답과 왜 틀렸는지에 대한 이유도 알게 되었다..

참고)) https://loding.tistory.com/entry/%EB%B0%B1%EC%A4%80C%EC%96%B8%EC%96%B4-1008%EB%B2%88-A-B

드디어 풀게 된 1008번 코드

 

 

10926번 문제

50글자를 넘지 않는 영어 소문자 라는 점에서 char str[51]을 생성했고, printf나 scanf에서 받을 때는 %s로 받는다!

 

 

2438번 문제

문자열 길이 세는 걸 하려면 #include <string.h> 를 선언해야함! 그리고 strlen() 함수를 통해 문자열 길이를 알 수 있다 

 

2754번 문제

문자열을 입력받고, 그 문자열이 A+,B+인지 등을 판단하기 위한 방법을 찾았는데 그냥 if 에 str == "A+" 이런식으로 입력하니까 제대로 출력되지 않았다.

#include <string.h> 

if(strcmp(변수,"특정 문자열")==0){

실행문;

}

이렇게 하니까 되었다!

 

2754번 문제


#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>

int main(void) {

char str[5];
scanf("%s", &str);

if (strcmp(str, "A+") == 0)
printf("4.3");
if (strcmp(str, "A0") == 0)
printf("4.0");
if (strcmp(str, "A-") == 0)
printf("3.7");
if (strcmp(str, "B+") == 0)
printf("3.3");
if (strcmp(str, "B0") == 0)
printf("3.0");
if (strcmp(str, "B-") == 0)
printf("2.7");
if (strcmp(str, "C+") == 0)
printf("2.3");
if (strcmp(str, "C0") == 0)
printf("2.0");
if (strcmp(str, "C-") == 0)
printf("1.7");
if (strcmp(str, "D+") == 0)
printf("1.3");
if (strcmp(str, "D0") == 0)
printf("1.0");
if (strcmp(str, "D-") == 0)
printf("0.7");
if (strcmp(str, "F") == 0)
printf("0.0");


return 0;
}


지금 생각나는 건 이 방법밖에 없는데.. 나중에 더 효율적인 방법 있으면 생각해보자

 

10171번 문제

printf에서 \(역슬래시를 출력하려면) \\ 두번 입력해야한다(예전에 코드업에서 비슷한 문제 봤던 것 같다)

 

11382번 문제

숫자 A,B,C의 범위가 10^12 까지여서 int를 사용할 수 없어서 long long을 사용하였고 %lld 로 문자를 받았다

 

 

10172번 문제

귀여운 개

 

2588번 문제

2588번 문제
아직도 왜 이렇게 되는지 잘 모르겠다 일의자리, 십의자리, 백의자리 구하는 법 다시 공부하자

 

헤헤 단계별로 풀어보기 - 1. 입출력과 사칙연산 끝ㅎㅎㅎㅎㅎ

 

 

백준 2번째 날!

이 기록을 남기는 지금!!(오늘 17문제 풀었당ㅎㅎㅎㅎ)