본문 바로가기

[C++] 알고리즘 교육/6. 문자열11

[알고리즘 6.2.10] 문자열 - 큰 자릿수 곱셈 문제 두 자연수가 주어질 때 그들의 곱셈을 계산하는 프로그램을 작성하시오. 각 수는 1 이상 10^100 미만의 범위를 가진다. 입력 첫 번째 줄과 두 번째 줄에 각각 하나의 자연수가 주어진다. 출력 첫 번째 줄에 곱셈의 결과를 출력한다. 예제 입력 123112981293812938139 1298928491101221811 예제 출력 159914959026945386297336486942660549729 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60.. 2019. 4. 25.
[알고리즘 6.2.9] 문자열 - 큰 자릿수 뺄셈 문제 두 자연수가 주어질 때 그들의 덧셈을 계산하는 프로그램을 작성하시오. 각 수는 1 이상 10^100(10의 100 거듭제곱) 미만의 범위를 가진다. 입력 첫 번째 줄과 두 번째 줄에 각각 하나의 자연수가 주어진다. 출력 첫 번째 줄에 덧셈의 결과를 출력한다. 예제 입력 123112981293812938139 1298928491101221811 예제 출력 124411909784914159950 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 .. 2019. 4. 25.
[알고리즘 6.2.8] 문자열 - 큰 자릿수 덧셈 문제 두 자연수가 주어질 때 그들의 덧셈을 계산하는 프로그램을 작성하시오. 각 수는 1 이상 10^100(10의 100 거듭제곱) 미만의 범위를 가진다. 입력 첫 번째 줄과 두 번째 줄에 각각 하나의 자연수가 주어진다. 출력 첫 번째 줄에 덧셈의 결과를 출력한다. 예제 입력 123112981293812938139 1298928491101221811 예제 출력 124411909784914159950 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 .. 2019. 4. 25.
[알고리즘 6.2.7] 문자열 - 문자열 압축 문제 문자열의 길이가 굉장히 길 경우, 이를 압축하여 짧게 만들어야 할 때가 종종 있다. 이 문제에서는 문자열이 주어졌을 때, 다음과 같은 방법으로 압축한 결과를 출력하는 프로그램을 작성한다. 예를 들어, 문자열이 AAABBBBBCCCCDDDDEFFF 라고 하자. 이 문자열을 압축하면, 연속으로 같은 문자가 나오는 부분에, 그 문자가 몇번 나왔는지를 적어줌으로써 압축한다. 즉, 이 문자열은 3A5B4C4DE3F 로 압축된다. E는 1개밖에 없기 때문에 따로 1을 적어주지 않는다. 입력 첫 번째 줄에 압축하고자 하는 문자열이 주어진다. 문자열의 길이는 1000보다 작다. 문자열에 구성된 알파벳은 대문자다. 출력 문자열을 압축한 결과를 출력한다. 예제 입력 AAABBBBBCCCCDDDDEFFF 예제 출력 3.. 2019. 4. 25.
[알고리즘 6.2.6] 문자열 - 팰린드롬 조사 문제 문자열이 주어질 때, 이것이 팰린드롬인지 조사하는 프로그램을 작성하시오. 팰린드롬이란, 앞으로 읽을 때와 뒤로 읽을 때의 결과가 같은 문자열을 말한다. 입력 첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 ) 출력 입력된 문자열이 팰린드롬이면 YES, 아니면 NO를 출력한다. 예제 입력 abcba 예제 출력 YES 예제 입력 abcbd 예제 출력 NO 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 #include #include int main() { char arr[1005]; fgets(arr, 1005, stdin); int arrLen = strlen(arr); int arrDiv = arr.. 2019. 4. 25.
[알고리즘 6.2.5] 문자열 - 문자열 포함관계 조사 문제 문자열 A와 B가 주어질 때, 문자열 B가 문자열 A에 포함되어 있는지를 조사하는 프로그램을 작성하시오. 단, 문자열 A와 B에는 알파벳으로만 이루어져 있으며, 공백은 포함되지 않는다고 가정한다. 입력 첫 번째 줄에 문자열 A, 두 번째줄에 문자열 B가 주어진다. 각각의 길이는 1,000을 넘지 않는다. 출력 문자열 B가 문자열 A에 포함되면 YES, 아니면 NO를 출력한다. 예제 입력 Watermelon melon 예제 출력 YES 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 #include #include int main() { char arr.. 2019. 4. 25.
[알고리즘 6.2.4] 문자열 - 문자열 정렬 문제 n개의 문자열이 주어질 때, 이 문자열을 사전순으로 빠른 순서대로 정렬하는 프로그램을 작성하시오. 입력 첫 번째 줄에 문자열의 개수 n이 주어진다 ( 1 ≤ n ≤ 100 ) 그 후 n개의 줄에 대하여 정렬하고자 하는 문자열이 주어진다 ( 1 ≤ 문자열의 길이 ≤ 100 ) 출력 문자열을 사전순으로 빠른 순서대로 정렬한 결과를 출력한다. 예제 입력 9 acid apple banana acquire cat crop crab power cat 예제 출력 acid acquire apple banana cat cat crab crop power 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 3.. 2019. 4. 25.
[알고리즘 6.2.3] 문자열 - 문자열 뒤집기 문제 문자열이 주어질 때, 이를 뒤집어서 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 ) 출력 문자열을 뒤집은 결과를 출력한다. 예제 입력 Hello World! 예제 출력 !dlroW olleH 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include #include int main() { char arr[1500]; fgets(arr, 1500, stdin); int su = strlen(arr); for(int i=su-1; i>=0; i--){ printf("%c",arr[i]); } return 0; } 2019. 4. 25.
[알고리즘 6.2.2] 문자열 - 과제물 망치기 문제 철수는 영희를 괴롭히는 것을 매우 좋아한다. 오늘도 철수는 영희를 어떻게 괴롭힐지 고민을 하다가, 영희가 최근에 작성하고 있던 문서가 떠올랐다. 이에 철수는 영희의 문서를 망쳐놓기로 결심한다. 바로 띄어쓰기를 모두 제거해버리는 것이다. 영희의 문서를 확인한 철수는, 띄어쓰기가 너무 많아 직접 모두 제거할 수는 없다는 것을 깨닫고 도움을 요청했다. 영희의 문서가 주어질 때, 띄어쓰기를 모두 제거하는 프로그램을 작성하시오. 입력 첫째 줄에 영희의 문서가 주어진다. 영희의 문서는 한 줄 짜리 문자열이며, 문서의 길이는 100,000을 넘지 않는다. 출력 문자열의 띄어쓰기를 모두 제거한 결과를 출력한다. 예제 입력 Please do not touch anything 예제 출력 Pleasedonottouch.. 2019. 4. 25.
[알고리즘 6.2.1] 문자열 - 대소문자 변환 문제 문자열이 주어질 때, 대문자는 소문자로, 소문자는 대문자로 바꾸는 프로그램을 작성하시오. 알파벳이 아닌 문자는 그대로 유지한다. 입력 첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 ) 출력 문자열 내의 대문자는 소문자로, 소문자는 대문자로 바꾼 결과를 출력한다. 예제 입력 hELLO wORLD! 예제 출력 Hello World! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #include #include int main() { char arr[1000]; fgets(arr,1000,stdin); //65~90 대문자 //97~122 소문자 int su = strlen(arr); for(int i=0; i=.. 2019. 4. 25.
[알고리즘 6.1.1] 문자 - 계산기 문제 덧셈, 뺄셈, 곱셈, 나눗셈을 할 수 있는 계산기 프로그램을 만드세요. 입력 첫째 줄에는 숫자 a가 입력되고, 둘째 줄에는 +, -, /, * 연산자가 입력된다. 마지막 줄에는 숫자 b가 입력된다. 출력 a와 b를 주어진 연산자를 활용하여 연산한 결과를 출력해라. 예제 입력 5 + 5 예제 출력 10 예제 입력 5 - 12 예제 출력 -7 예제 입력 2 * 105 예제 출력 210 예제 입력 125 / 5 예제 출력 25 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 #include int main() { int su1, su2; char mun; scanf("%d %c %d",&su1, &mun, &su2); if(mun == '+'){ print.. 2019. 4. 25.