프로그래밍/C 5

[백준_1152] 단어의 개수

https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net #include int main() { char S[1000000];//문자열 입력받는 배열 선언 gets(S);//입력 문자 한 줄 전체 입력 받음 int count = 0; int k = 0; if (S[0] != ' ') {//입력 문자 첫 글자가 빈칸이 아니면 count값 1 증가 count++; } while (S[k]) {//문자열이 끝날 때 까지 반복 if (S[k] == ' '..

프로그래밍/C 2022.03.01

[백준_10809] 알파벳 찾기

https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 내가 처음 제출한 코드 #include int main() { char S[100]; scanf("%s", &S); int num[26]; for (int k = 0; k < 26; k++) { num[k] = -1; } for (int i = 0; i < sizeof(S); i++) { if (num[S[i]-'a'] == -1) { num[S[i]-'a'] = i; } } for ..

프로그래밍/C 2022.02.26

[백준_11720] 숫자의 합

https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 띄어쓰기나 구분 표시 없이 입력되는 숫자를 어떻게 하나씩 떼어 계산하지? ㄴ 정수로 받아서 10씩 나눠가며 한자리씩 값을 얻어야 하나? -> 근데 문자열 카테고리에 있는 문제니까 문자열을 이용해야겠지 정수를 문자열로 입력받으려면 어떻게? sprintf를 이용해야 하나? #include int main() { int n, sum = 0; scanf("%d", &n);//입력할 숫자 갯수(n) 정수형 입력 char input[100];//둘째줄에 입력할 숫자를 넣을 배열(n이 최대 ..

프로그래밍/C 2022.02.26

[백준_2577] 숫자의 개수(배열 0으로 초기화)

int num[10] = { 0, }; while (result > 0) { num[result % 10]++; result /= 10; } for (int i = 0; i < 10; i++) { printf("%d\n", num[i]); } 자릿수에 해당하는 num 인덱스 값을 증가시켜줌 예를 들어, 자릿수가 2면 num[2]의 값 1 증가, 자릿수가 8이면 num[8]의 값 1 증가하는 방식 이렇게 하면 내가 작성한 코드 10~28행을 아래와 같이 짧게 줄일 수 있다. #include int main() { int a, b, c; int result; scanf("%d %d %d", &a,&b,&c); result = a * b * c; int num[10] = { 0, }; while (result..

프로그래밍/C 2022.02.20

[백준_10951] A+B - 4 (EOF)

EOF(End Of File) : 파일 끝 조건을 위한 컴퓨터 용어, 보통 -1값을 가짐 https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC_%EB%81%9D 입력이 끝날 때까지 A+B를 출력하는 문제이다. '입력이 끝날 때'를 구현하기 위해 EOF를 이용하는 것이다. 두 정수의 입력(scanf)이 EOF가 아닌 동안 반복 #include int main() { int a; int b; int result; while (scanf("%d %d", &a, &b)!=EOF){ result = a + b; printf("%d\n", result); } return 0; } 두 정수의 입력(scanf)이 -1(EOF의 표현값)이 아닌 동안 반복 #include int main..

프로그래밍/C 2022.02.17