Logo CodeXlog
  • Home
  • About
  • Recent Posts
  • 게시글
  • Tags
  • Dark Theme
    Light Theme Dark Theme System Theme
Logo Inverted Logo
  • 게시글
  • Blog-Migration
    • Hugo
    • Jekyll
  • Study
    • Algorithms
      • Algorithms Problem
        • Backjoon
          • Problem.100039
          • Problem.1065
          • Problem.10809
          • Problem.10871
          • Problem.1110
          • Problem.1152
          • Problem.1157
          • Problem.11654
          • Problem.11718
          • Problem.11719
          • Problem.11720
          • Problem.11721
          • Problem.1316
          • Problem.1546
          • Problem.15552
          • Problem.1924
          • Problem.1978
          • Problem.2257
          • Problem.2439
          • Problem.2441
          • Problem.2448
          • Problem.2490
          • Problem.2675
          • Problem.2839
          • Problem.2908
          • Problem.2920
          • Problem.2941
          • Problem.4673
          • Problem.5622
          • Problem.8393
          • Problem.8958
          • Problem.9461
      • Programming Tips
        • C언어 Scanf 의 의미
      • Etc Problem
        • Prob 달팽이 배열
        • 기초 문제
        • 다양한 패턴 출력
        • 큰수 작은수로 정렬후 덧셈
        • 파스칼의 삼각형
    • Computer Science
      • 시스템프로그래밍 FTW 구현
      • 시스템프로그래밍 FTW 구현
    • Programming Language
      • Python
        • Python 기초
      • C언어 스터디
      • 강제 캐스팅에 의한 1byte 단위 접근법
  • Dev
    • DevOps
      • [DevOps] Terraform vs Ansible 뭐가 다르죠?
    • Tips
      • AWS text recognizer
        • AWS project 진행 과정
        • AWS 이미지속 글자 추출
        • Django 따라해보기!!
    • Tips
    • Git Manual
  • OS
    • BSD-Based OS
    • Linux
      • Debain-Based OS
        • Ubuntu & OSX setting
      • RHEL-Based OS
        • CentOS 7
    • Mac OS
      • Mac Autojump 설치및 사용법
    • Window OS
      • Git 설치 및 초기설정
  • Tools
    • GitLab
      • GitLab Upgrade
Hero Image
Problem.2908

백준 단계별 문제집 문자열 모든 내용은 Git Hub에도있습니다. ##Problem.2908 상수 #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ char buf[8]={0,}; int start_num=2; fgets(buf,sizeof(buf),stdin); for(int i=3;0<i;i--){ if(buf[i-1]>buf[i+3]&&(buf[i-1]!=buf[i+3])){ //각 숫자의 가장 뒷부분을 비교 여기서 큰쪽이 큰수가 된다. //같은 수인걸 조건으로 배제해야 한다. start_num=2; break; } else{ if(buf[i-1]<buf[i+3]&&(buf[i-1]!=buf[i+3])){ start_num=6; break; } } } //만약 두수가 111 111이라면 같은 수이므로 위의 반복문을 돌고 나서 //start_num에는 아무 변화가 없을것이다. 그래서 초기값으로 2를 넣어줌 for(int j=0;j<3;j++){ printf("%c",buf[start_num-j]); //두 수를 비교해서 큰숫자가 판명 나면 그 숫자의 시작 번호를 받아와 거꾸로 출력 } puts(""); }

  • C
  • Backjoon
  • Online-Judge
2018년 5월 18일 금요일 | 1
Hero Image
Problem.2920

모든 내용은 Git Hub에도있습니다. Problem.2920 2920번[음계] #include <stdio.h> int main(){ int temp[8]={0,}; int state[8]={0,}; int now_state; // 0=ascending 1=descending 2=mix for(int i=0;i<8;i++){ scanf("%d",&temp[i]); } now_state=temp[1]-temp[0]; for(int j=0;j<7;j++){ if(now_state==1&&now_state==(temp[j+1]-temp[j])) //오름차순 continue; else if(now_state<0&&now_state==(temp[j+1]-temp[j])) //내림차순 continue; else{ now_state=2; //등차 수열을 이루지 못해서 Mix의 상태임. break; } } if(now_state==1) printf("ascending\n"); else if(now_state<0) printf("descending\n"); else printf("mixed\n"); } 시작이 1 혹은 8 둘중하나로 시작 하면 오름차순 이거나 내림차순 일것이다. 즉 하나의 수열로 봤을때 등차 수열이 되야한다는것. 등차 수열을 이루지 못하다면 Mix 인것이다.

  • C
  • Backjoon
  • Online-Judge
2018년 5월 18일 금요일 | 1
Hero Image
Problem.2941

백준 단계별 문제집 심화1 모든 내용은 Git Hub에도있습니다. ##Problem.2941 크로아티아 알파벳 #include <stdio.h> #include <string.h> int main(){ char buf[101]={'\0',}; int croatia=0; scanf("%s",buf); for(int i=0;i<strlen(buf);i++){ if(buf[i]=='c'&&(buf[i+1]=='='||buf[i+1]=='-')){ croatia++; i+=1; } else if(buf[i]=='d'){ if(buf[i+1]=='z'&&buf[i+2]=='='){ croatia++; i+=2; } else if(buf[i+1]=='-'){ croatia++; i+=1; } else{ croatia++; } } else if(buf[i]=='l'&&buf[i+1]=='j'){ croatia++; i+=1; } else if(buf[i]=='n'&&buf[i+1]=='j'){ croatia++; i+=1; } else if(buf[i]=='s'&&buf[i+1]==61){ croatia++; i+=1; } else if(buf[i]=='z'&&buf[i+1]=='='){ croatia++; i+=1; } else{ croatia++; } } printf("%d\n",croatia); } 이것도 조건에 맞춘 노가다 인듯 싶다.

  • C
  • Backjoon
  • Online-Judge
2018년 5월 18일 금요일 | 1
Hero Image
Problem.4673

모든 내용은 Git Hub에도 있습니다. Problem.4673 4673번 문제(성공) 셀프넘버 Wiki 참고 #include <stdio.h> int generate(int n_times); int main() { int check_generator[10000] = { 0, }; int generate_state=0; for (int i = 1; i <= 10000; i++) { generate_state = generate(i); if (check_generator[generate_state-1] == 0) { check_generator[generate_state-1] = 1; } else { continue; } } for (int q = 1; q<=10000; q++) { if (check_generator[q-1] == 0) { printf("%d\n", (q)); } } } int generate(int n_times) { int now_decimal = n_times, sum_of_generator=0; int digits = n_times, run = 1; while (digits >= 1) { digits /= 10; run*=10; } while (run>=1) { sum_of_generator += now_decimal / run; now_decimal -= (now_decimal / run)*run; run /= 10; } return sum_of_generator += n_times; }

  • C
  • Backjoon
  • Online-Judge
2018년 5월 18일 금요일 | 1
Hero Image
Problem.5622

백준 단계별 문제집 문자열 모든 내용은 Git Hub에도있습니다. ##Problem.5622 다이얼 #include <stdio.h> #include <string.h> int main(){ char buf[16]={'\0',}; int result=0; scanf("%s",buf); for(int i=0;i<strlen(buf);i++){ if(buf[i]>=65&&buf[i]<=67) result+=3; else if(buf[i]>=68&&buf[i]<=70) result+=4; else if(buf[i]>=71&&buf[i]<=73) result+=5; else if(buf[i]>=74&&buf[i]<=76) result+=6; else if(buf[i]>=77&&buf[i]<=79) result+=7; else if(buf[i]>=80&&buf[i]<=83) result+=8; else if(buf[i]>=84&&buf[i]<=86) result+=9; else result+=10; } printf("%d\n",result); } 그냥 조건에 맞춘 노가다 인듯 싶다…중요한건 다이얼에서 1과 0은 입력이 없다고 보면 된다. 2~9까지의 수만 쓰인다 생각하고 풀면됨

  • C
  • Backjoon
  • Online-Judge
2018년 5월 18일 금요일 | 1
Hero Image
Problem.8393

모든 내용은 Git Hub에도있습니다. Problem.8393 8393번[합] 문제 : n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. #include <stdio.h> int main(){ int N,sum=0; scanf("%d",&N); for(int i=1;i<=N;i++) sum+=i; printf("%d\n",sum); }

  • C
  • Backjoon
  • Online-Judge
2018년 5월 18일 금요일 | 1
Hero Image
Problem.8958

모든 내용은 Git Hub에도있습니다. Problem.8958 8958번[OX퀴즈] #include <stdio.h> #include <stdlib.h> #include <string.h> int main(){ int now_point=0,total_point=0; int count=0; char buf[81]={'\0',}; scanf("%d",&count); while(getchar()!=10); // 입력 버퍼를 비워 주지 않으면 테스트 횟수 입력후 첫번째 케이스 문자가 입력이 안됨 // 왜냐면 처음 반복 횟수 입력후 버퍼의 상태는 N\n 이렇게 들어있음 즉 숫자와 엔터가 // 들어있는 상태임 그래서 그다음에 fgets 를 쓰려고 하면 입력이 끝나 버리는것 //그래서 두가지 방법중 하나를 써줘야됨 //1.scanf("%d ") => 공백을 하나 추가하여 //2.while(getchar()!=10) \n 이 나올때까지 입력 버퍼를 비워줌 for(int i=0;i<count;i++){ fgets(buf,sizeof(buf),stdin); for(int j=0;j<strlen(buf);j++){ if(buf[j]=='O'){ ++now_point; total_point+=now_point; } if(buf[j]=='X'){ now_point=0; } } printf("%d\n",total_point); total_point=0; now_point=0; memset(buf,'\0',strlen(buf)); } } 알고리즘은 간단하다. 근데 입출력에 문제가 생겼음. scanf로 입력 받았을때는 버퍼의 마지막에 ‘\n’ 이 있는 상태이고 그다음에 바로 getchar를 쓴다면 버퍼 마지막의 ‘\n’을 가져 오게 된다 그래서 첫번째 케이스의 첫 글자가 입력이 안되서, scanf로 입력 받고 버퍼를 비워줘야함.

  • C
  • Backjoon
  • Online-Judge
2018년 5월 18일 금요일 | 1
Hero Image
Problem.9461

모든 내용은 Git Hub에도있습니다. 9461번 파도반 수열은 간단하다. 처음 배열 1 1 1 1 2 2 를 시작으로 PD[n]=PD[n-1]+PD[n-5]의 식이 성립되지만 처음에 이렇게 접근하지 않았다. 파도반은 정삼각형과 역삼각형으로 이루어져있음 0 1 2 정삼각 1 1 2 역삼각 1 2 3 위의 표를 잘 보자 문제에서 처음 시작은 정삼각형 1부터 시작 그다음은 역삼각 1이다. 그럼 다음 차례 정삼각[1]의 값을 찾아야 하는데 이건 정삼각[1]=정삼각[0]+역삼각[-1]이다. –> 대각의 합 그래서 정삼각[1]은 =1이 된다. 다음은 역삼각 [1]이다. 역삼각[1]=정삼각[0]+역삼각[0]으로 구할수 있다. –> 수직의 합 즉 배열 두개와 각 배열의 값을 구해주는 함수 두개가 필요하다. 정삼각은 Up_triangle, 역삼각은 Down_triangle로 만들자. 그리고 수열의 특성상 int의 범위를 넘겨 버린다. 그래서 각 배열과 함수의 자료형은 long long으로 해준다.

  • C
  • Backjoon
  • Online-Judge
2018년 5월 18일 금요일 | 1
  • ««
  • «
  • 1
  • 2
  • 3
  • »
  • »»
바로가기
  • About
  • Recent Posts
  • Tags
Contact me:
  • codex.devlab@gmail.com
  • ehdwn1991
  • Codex

책임 고지: This theme is under MIT license. So, you can use it for non-commercial, commercial, or private uses. You can modify or distribute the theme without requiring any permission from the theme author. However, the theme author does not provide any warranty or takes any liability for any issue with the theme.