본문 바로가기

[Algorithm] 문자열 뒤집기 문제문자열이 주어질 때, 이를 뒤집어서 출력하는 프로그램을 작성하시오. 입력첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 ) 출력문자열을 뒤집은 결과를 출력한다. 예제 입력Hello World! 예제 출력!dlroW olleH #include #includeint main() { //Please Enter Your Code Here char str[1000]; char *ptr = str; int i; fgets(ptr,1000,stdin); while(*(ptr+i)!='\0'){ i++; } for(;i>=0;i--){ printf("%c",*(ptr+i)); } return 0;}
[Algorithm] 과제물 망치기 문제철수는 영희를 괴롭히는 것을 매우 좋아한다. 오늘도 철수는 영희를 어떻게 괴롭힐지 고민을 하다가, 영희가 최근에 작성하고 있던 문서가 떠올랐다. 이에 철수는 영희의 문서를 망쳐놓기로 결심한다. 바로 띄어쓰기를 모두 제거해버리는 것이다. 영희의 문서를 확인한 철수는, 띄어쓰기가 너무 많아 직접 모두 제거할 수는 없다는 것을 깨닫고 도움을 요청했다. 영희의 문서가 주어질 때, 띄어쓰기를 모두 제거하는 프로그램을 작성하시오. 입력첫째 줄에 영희의 문서가 주어진다. 영희의 문서는 한 줄 짜리 문자열이며, 문서의 길이는 100,000을 넘지 않는다. 출력문자열의 띄어쓰기를 모두 제거한 결과를 출력한다. 예제 입력Please do not touch anything 예제 출력Pleasedonottouchanyth..
[Algorithm] 대소문자변환 문제문자열이 주어질 때, 대문자는 소문자로, 소문자는 대문자로 바꾸는 프로그램을 작성하시오. 알파벳이 아닌 문자는 그대로 유지한다. 입력첫 번째 줄에 문자열이 주어진다. ( 1 ≤ 문자열의 길이 ≤ 1,000 ) 출력문자열 내의 대문자는 소문자로, 소문자는 대문자로 바꾼 결과를 출력한다. 예제 입력hELLO wORLD! 예제 출력Hello World! #include #include int main() { char str[1000]; //Please Enter Your Code Here fgets(str,1000,stdin); for(int i=0; str[i]; i++){ if((str[i]>='a') && (str[i]='A') && (str[i]
[Algorithm] strlen, strcmp, strcpy ◈ 문자열을 다루기 char str[10]; 다음과 같이 선언하여 문자열을 저장할 수 있다. #include int main() { //Please Enter Your Code Here char myString[10]; myString[0] = 'h'; myString[1] = 'e'; myString[2] = 'l'; myString[3] = 'l'; myString[4] = 'o'; myString[5] = '\0'; // 널을 넣어 반드시 문자의 끝을 명시한다. printf("%s",myString); return 0;} #include int main() { //Please Enter Your Code Here char myString[] = "hello";// myString '\o' 을 포함하..
[Algorithm] fgets ◈ fgets(str,size,stdin) str ? 읽어들인 문자열을 저장할 char 배열을 가리키는 포인터입니다.size ? 마지막 NULL 문자를 포함하여, 읽어들일 최대 문자 수. #include int main(void) { char name[100]; printf("이름을 입력해 주세요. "); scanf("%s", name); printf("당신의 이름은 %s입니다.\n", name); return 0;} ans) 이름을 입력해주세요. 당신의 이름은 준우입니다. #include int main(void) { char name[100]; printf("이름을 입력해 주세요. "); //fgets(name,100,stdin); scanf("%s",name); printf("당신의 이름은 %s입니..
[Algorithm] pfactorization 문제정수 N이 주어졌을 때, 소인수분해하는 프로그램을 작성하시오.소인수란 소수인 인수(약수)를 의미한다. 입력첫째 줄에 정수 N (1 ≤ N ≤ 10,000,000)이 주어진다. 출력N의 소인수를 한 줄에 하나씩 오름차순으로 출력한다.. 예제 입력72 예제 출력2 2 2 3 3 예제 입력3 예제 출력3 예제 입력6 예제 출력2 3 예제 입력9991 예제 출력97 103 #include using namespace std; int n; int main() { //Please Enter Your Code Here cin>>n; for(int i=2; n>1;){ if(n%i == 0){ printf("%d\n", i); n/=i; }else{ i++; } } return 0;}
[Algorithm] streetree 문제직선으로 되어있는 도로의 한 편에 가로수가 임의의 간격으로 심어져있다. KOI 시에서는 가로수들이 모두 같은 간격이 되도록 가로수를 추가로 심는 사업을 추진하고 있다. KOI 시에서는 예산문제로 가능한 한 가장 적은 수의 나무를 심고 싶다.편의상 가로수의 위치는 기준점으로 부터 떨어져 있는 거리로 표현되며, 가로수의 위치는 모두 양의 정수이다.예를 들어, 가로수가 (1, 3, 7, 13)의 위치에 있다면 (5, 9, 11)의 위치에 가로수를 더 심으면 모든 가로수들의 간격이 같게 된다. 또한, 가로수가 (2, 6, 12, 18)에 있다면 (4, 8, 10, 14, 16)에 가로수를 더 심어야 한다.심어져 있는 가로수의 위치가 주어질 때, 모든 가로수가 같은 간격이 되도록 새로 심어야 하는 가로수의 최..
[Algorithm] BasicGCD ◈ 최대공약수 주어진 두 정수의 약수 중에서 가장 큰 공통인 약수이다. 예를 들어, 12와 18의 최대공약수를 구해보자. 12 → 1 2 3 4 6 1218 → 1 2 3 6 9 18 ◈ 최대공약수 관련 법칙 1. 만약 a>b 라면, GCD(a,b) = GCD(a-b,b);2. GCD(a,0) = a ◈ 유클리드 알고리즘 GCD(170, 20) = GCD(150,20)= GCD(130,20)= ...= GCD(10,20)= GCD(0,10)= 10 ◈ 개선된 유클리드 알고리즘 위의 유클리드 알고리즘은 뺄셈을 기반으로 한 알고리즘이다. 하지만 1000, 10000 과 같은 큰 수일 경우는 %을 이용하는 알고리즘이 있다. GCD(a,b) = GCD(a%b,b) = GCD(b, a%b) #includeint ..