Class 1 36

[백준 11720] 숫자의 합 [C]

풀이 문자열을 입력받고, 문자 '0'~'9'에 48을 뺀 아스키 코드 값이 숫자 0 ~ 9와 같다는 점을 이용해 해결하면 된다. 소스코드 #include int main(){ int N, sum = 0; char str[101]; scanf("%d %s", &N, str); for (int i = 0; i < N; i++) sum += str[i] - 48; printf("%d", sum); } 출처 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net

[백준 10818] 최소, 최대 [C]

풀이 N개의 정수를 전부 저장할 필요 없이 입력받은 직후 최솟값인지, 최댓값인지 구분해 해결할 수 있다. 소스코드 #include int main() { int N, num, max, min; scanf("%d", &N); for (int i = 0; i max) max = num; } printf("%d %d", min, max); } 출처 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 ..

[백준 10809] 알파벳 찾기 [C]

풀이 모두 소문자만 입력된다는 점을 index로 이용하면 된다. str[i] 'a' 'b' " " 'y' 'z' str[i] - 'a' 0 1 " " 24 25 str[i] - 'a' 를 index로 활용하여, 각 알파벳에 맞는 배열의 값에 처음으로 등장하는 위치(값)을 입력해주면 된다. 단, 중복해서 값이 들어가는 것을 방지하기 위해 배열의 요소 값이 0(초기값)일 때만 입력하도록 한다. 소스코드 #include int main(){ char str[101], cnt[26] = { 0, }; scanf("%s", str); for (int i = 0; str[i] != '\0'; i++) if (!cnt[str[i] - 'a']) cnt[str[i] - 'a'] = i + 1; for (int i = ..