본문 바로가기
반응형

전체 글78

[BOJ/백준] 11382번 꼬마 정민 - [c/c++] 풀이 https://www.acmicpc.net/problem/11382 11382번: 꼬마 정민 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다. www.acmicpc.net 문제 해설 간단한 입출력 문제이지만 10¹² x 3일 경우 int 자료형의 범위를 초과하기 때문에 int 보다 더 큰 범위인 long long으로 변수를 선언한다. 코드 c #include int main() { long long a, b, c; scanf("%lld %lld %lld", &a, &b, &c); printf("%lld", a + b + c); return 0; } c++ #include using namespace std; int main() { long long a, b.. 2023. 2. 27.
[BOJ/백준] 2941번 크로아티아 알파벳 - [c/c++] 풀이 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 문제 해설 문자열을 입력받은 후 i로 인덱스에 접근할 거다. i를 1씩 증가시키며 표에 나와있는 크로아티아 알파벳이 존재한다면 i를 (크로아티아 알파벳 길이 - 1)만큼 증가시킨다. i는 항상 1씩 증가하기 때문에 (크로아티아 알파벳 길이 - 1)만큼 증가시킨다. 코드 c #include #include int main() { char s[101]; int a.. 2022. 10. 21.
[BOJ/백준] 5622번 다이얼 - [c/c++] 풀이 https://www.acmicpc.net/problem/5622 5622번: 다이얼 첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다. www.acmicpc.net 문제 해설 각 알파벳 별로 시간을 time 배열에 저장한다. 문자열을 돌면서 (문자 - 'A')로 인덱스에 접근하여 ans에 시간을 더한 후 출력한다. 코드 c #include #include int main() { int time[26] = { 3, 3, 3, 4, 4, 4, 5, 5, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10 }; char s[16]; int ans = 0; scanf("%s", s); for (int.. 2022. 10. 19.
[BOJ/백준] 2908번 상수 - [c/c++] 풀이 https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 문제 해설 c - 두 수를 문자열 a, b로 입력받은 후 문자열의 뒤부터 비교를 하며 a가 더 크면 flag = true, b가 더 크면 flag = false; 로 준 후 flag = true면 a를 역순으로, flag = false일 경우 b를 역순으로 출력한다. c++ - 두 수를 문자열 a, b로 입력받은 후 문자열의 뒤부터 비교를 하며 a가 더 크면 res = a, b가 더 크면 res = b 로 준.. 2022. 10. 18.
[BOJ/백준] 1152번 단어의 개수 - [c/c++] 풀이 https://www.acmicpc.net/problem/1152 1152번: 단어의 개수 첫 줄에 영어 대소문자와 공백으로 이루어진 문자열이 주어진다. 이 문자열의 길이는 1,000,000을 넘지 않는다. 단어는 공백 한 개로 구분되며, 공백이 연속해서 나오는 경우는 없다. 또한 문자열 www.acmicpc.net 문제 해설 문자열의 양끝의 공백을 제외한 (공백의 개수 + 1) = (단어의 개수)이므로 정답을 저장할 변수 res을 1로 초기화한 후 공백이 있을 때마다 res를 1씩 증가시킨다. 단 문자열의 길이가 1이고 공백일 경우를 고려하여 0을 출력한다. c - 공백을 포함한 문자열 입력받는 방법 : scanf("%[^\n]", 변수); c++ - 공백을 포함한 문자열 입력 받는 방법 : strin.. 2022. 10. 18.
[BOJ/백준] 1157번 단어 공부 - [c/c++] 풀이 https://www.acmicpc.net/problem/1157 1157번: 단어 공부 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. www.acmicpc.net 문제 해설 알파벳 사용 횟수를 저장하는 배열 cnt를 초기화한 후 알파벳 별로 사용 횟수를 증가시켜준다. 알파벳 사용 개수의 최대값인 max를 통해 최댓값인 경우의 수를 세어 1인 경우 사용 횟수가 max인 알파벳 출력 경우의 수가 2 보다 클 경우 ?를 출력한다. 코드 c #include #include int main() { int cnt[26] = { 0, }; int max = -1; // max: 알파벳 사용 개수의 최대.. 2022. 10. 17.
[BOJ/백준] 2675번 문자열 반복 - [c/c++] 풀이 https://www.acmicpc.net/problem/2675 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 문제 해설 간단한 반복문 문제로 문자 한 개당 입력된 반복 횟수 R만큼 출력하면 된다. 코드 c #include #include int main() { int t, R; char s[21]; scanf("%d", &t); while (t--) { scanf("%d", &R); scanf("%s", s); for (int i = 0; i < strlen(s); i++) { for (int .. 2022. 10. 15.
[BOJ/백준] 10809번 알파벳 찾기 - [c/c++] 풀이 https://www.acmicpc.net/problem/10809 10809번: 알파벳 찾기 각각의 알파벳에 대해서, a가 처음 등장하는 위치, b가 처음 등장하는 위치, ... z가 처음 등장하는 위치를 공백으로 구분해서 출력한다. 만약, 어떤 알파벳이 단어에 포함되어 있지 않다면 -1을 출 www.acmicpc.net 문제 해설 c - 문자가 최초로 등장한 인덱스를 저장할 cnt배열을 0으로 초기화시킨다. 문자가 최초 등장 시 문자열의 인덱스 번호 + 1로 저장한다. cnt배열을 순회하면서 0일 경우 -1을, 아닐 경우는 값 - 1을 공백을 두고 출력한다. cnt에 값을 저장할 때 + 1을 하지 않는다면? 문자의 최초 등장 인덱스가 0이라면 -1로 출력되는 문제가 발생한다. c++ - s.find(.. 2022. 10. 14.
반응형