반응형 전체 글78 [BOJ/백준] 10988번 팰린드롬인지 확인하기 - [c/c++] 풀이 https://www.acmicpc.net/problem/10988 10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 문제 해설 문자열을 반대로 뒤집어도 같은 문자열일 경우 팰린드롬이다. 문자열의 맨 앞, 맨 뒷 자리를 인덱스 1씩 증가, 감소 시키면서 계속 비교하면 된다. 아래 코드의 for문이 윗 설명에 해당된다. 코드 c #include #include int main() { char s[101]; scanf("%s", s); for(int i = 0; i > s; for(int i = 0; i 2023. 5. 25. [BOJ/백준] 2444번 별 찍기-7 - [c/c++] 풀이 https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 해설 필자의 생각으로는 별 찍기 문제는 해설을 듣는 거보다는, 혼자 깨닫는 게 더 좋은 것 같다. 입력받은 수를 n이라고 할 때 별은 피라미드 형식으로 n * 2 - 1줄에 걸쳐 출력하면 되는 문제이다. 먼저 for문을 줄을 의미하는 1부터 n번까지 돌린다. 1번째 줄은 (n - 1)개의 공백 후 별을, 2번째 줄은 (n - 2)개의 공백 후 별을 하는데 i번째 줄 -> (n - i)개의 공백 후 별을 출력하는 규칙이 있다. 별의 개수는 i번째 줄 -> i + (i - 1) = 2i - 1개의 별을 출력하면 된다. 위의.. 2023. 5. 13. [BOJ/백준] 11718번 그대로 출력하기 - [c/c++] 풀이 https://www.acmicpc.net/problem/11718 11718번: 그대로 출력하기 입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시 www.acmicpc.net 문제 해설 c - 공백을 포함하여 받기 위해 char 단위로 받아 공백, 줄바꿈(char로 입력 받을 수 있다)을 하나하나 입력 받는다. scanf함수는 반환값이 존재하는데, 입력된 필드 수를 반환한다. 입력의 종료 지점을 만났을 때 파일의 끝을 의미하는 EOF를 반환한다. 이를 활용하여 반복문의 종료 지점을 정의할 수 있다. c++ - getline(cin, 문자열 변수) 함.. 2023. 5. 13. [BOJ/백준] 9086번 문자열 - [c/c++] 풀이 https://www.acmicpc.net/problem/9086 9086번: 문자열 입력의 첫 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 10)가 주어진다. 각 테스트 케이스는 한 줄에 하나의 문자열이 주어진다. 문자열은 알파벳 A~Z 대문자로 이루어지며 알파벳 사이에 공백은 없으 www.acmicpc.net 문제 해설 2743번 문제처럼 인덱스에 주의하여 마지막 단어를 (문자열 길이 - 1) 값을 인덱스로 참조하여 출력하면 된다. 코드 c #include #include int main() { int n; char s[101]; scanf("%d", &n); while(n--) { scanf("%s", s); printf("%c%c \n", s[0], s[strlen(s) - 1]); } retu.. 2023. 5. 12. [BOJ/백준] 2743번 단어 길이 재기 - [c/c++] 풀이 https://www.acmicpc.net/problem/2743 2743번: 단어 길이 재기 알파벳으로만 이루어진 단어를 입력받아, 그 길이를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 해설 c - string.h 헤더 파일에 정의된 strlen 함수로 문자열의 길이를 출력한다 strlen이란 strlen(문자열 변수);로 매개 변수로 입력된 문자열 변수의 길이를 반환하는 함수이다. c++ - string에서 제공하는 기본 함수인 문자열.length()로 문자열 길이를 출력한다. 코드 c #include #include int main() { char s[101]; scanf("%s", s); printf("%d", strlen(s)); return 0; } c++ #incl.. 2023. 5. 12. [BOJ/백준] 27866번 문자와 문자열 - [c/c++] 풀이 https://www.acmicpc.net/problem/27866 27866번: 문자와 문자열 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$) www.acmicpc.net 문제 해설 문자열 s와 숫자 index를 입력 받아 문자열의 index번째 글자를 출력하면 된다. 문자열은 인덱스가 0번부터 시작하므로 (index - 1) 인덱스를 출력해야 된다. 코드 c #include int main() { int index; char s[1001]; scanf("%s", s); scanf("%d", &index); printf("%c", s[index - .. 2023. 5. 12. [BOJ/백준] 2608번 로마 숫자 - c++ 풀이 https://www.acmicpc.net/problem/2608 2608번: 로마 숫자 첫째 줄과 둘째 줄에 하나씩 로마 숫자로 표현된 수가 주어진다. 입력된 각 수는 2000 보다 작거나 같고, 두 수의 합은 4000보다 작다. www.acmicpc.net 문제 해설 규칙만 이해하면 골드5치고는 쉽게 풀 수 있는 구현 문제이다. 많은 조건 검사 외에는 풀 수 있는 방법이 떠오르지 않아 코드가 조금 더럽다. 다음 4개의 규칙만 지킨다면 쉽게 풀 수 있다. 1. 큰 숫자를 왼쪽에 작은 숫자를 오른쪽 쓰며, 그 값은 모든 숫자의 값을 더한 값이 된다. 2. V, L, D는 한 번만 사용할 수 있고(10=X, 10≠VV) I, X, C, M은 연속해서 세 번까지만 사용할 수 있다(4=IV, 4≠III) 3... 2023. 5. 12. [BOJ/백준] 10811번 바구니 뒤집기 - [c/c++] 풀이 https://www.acmicpc.net/problem/10811 10811번: 바구니 뒤집기 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2 www.acmicpc.net 문제 해설 1번부터 n번까지 번호가 순서대로 담긴 바구니가 있다 m개의 줄에 걸쳐 a b가 입력된다. a번부터 b번까지 바구니의 순서를 뒤집은 후 1번부터 n번까지 바구니에에 담긴 번호를 출력하면 되는 문제이다. 코드 c #include void swap(int *a, int *b) { int tmp = *a; *a = *b; *b = tmp; } int main() { int n, m, .. 2023. 4. 26. 이전 1 2 3 4 5 ··· 10 다음 반응형