목록전체 글 (294)
Minwoo Dev.
#include int main(void) { int n = 0; scanf("%d", &n); for (int i = 1; i 0; i--) { for (int j = 0; j < n - i; j++) { printf(" "); } for (int j = 0; j < 2 * i - 1; j++) { printf("*"); } printf("\n"); } return 0; } 자고로 코딩은 Ctrl+C Ctrl+V를 잘 활..
#include int main(void) { int n = 0; scanf("%d", &n); for (int i = n ; i > 0; i--) { for (int j = 0; j < n - i; j++) { printf(" "); } for (int j = 0; j < 2 * i - 1; j++) { printf("*"); } printf("\n"); } return 0; } 헷갈릴수도 있으니까 기록해두자~
지금 Bronze 3 레벨을 풀고 있는데, 뭔가 복잡한 문제들이 많이 보여서 쉬워보이는 별 문제부터 먼저 하는 중. #include int main(void) { int n = 0; scanf("%d", &n); for (int i = 1; i < n + 1; i++) { for (int j = 0; j < n - i; j++) { printf(" "); } for (int j = 0; j < 2 * i - 1; j++) { printf("*"); } printf("\n"); } return 0; } 힌트는 문제에 제시된 2n-1 개. 그리고 한 가지 헷갈릴 수 있는 부분은 별을 출력한 후 공백을 또다시 출력하지 않는다는 것. 따라서 공백을 두 번 따로 출력하는 방식이 아닌 공백 1번과 별 1번으..
이젠 익숙한... 그냥 다 풀어서 올려버려야지 #include int main(void) { int n = 0; scanf("%d", &n); for (int i = 0; i < n; i++) { for (int j = 0; j < i; j++) { printf(" "); } for (int j = 0; j < n - i; j++) { printf("*"); } printf("\n"); } return 0; }
while 문을 사용하는 게 낯설어서 풀기 힘들었다. #include int chk(int n); int main(void){ int n=0,m=0; int CM=0; while(scanf("%d",&n) && n!=0){ CM = 1; while(n!=0){ m = n%10; CM += chk(m); n/=10; } printf("%d\n",CM); } return 0; } int chk(int n){ if(n==0){ return 5; } else if(n==1){ return 3; } else{ return 4; } } 참고하고 푼 문제이므로 복습하기.
점을 입력받아 직사각형의 크기를 계산하는 문제이다. #include int main(void) { struct coma { // 점을 표현하기 위해 구조체 사용 int x; int y; }; int n = 0; struct coma a[100001]; // n값이 최대 100000임 struct coma rst; // 결과값을 나타내는 점 struct coma max; // 제일 큰 max값에 해당하는 점을 담는 변수 struct coma min; // 제일 작은 min값에 해당하는 점을 담는 변수 max.x = -10001; // 최솟값 max.y = -10001; // 최솟값 min.x = 10001; // 최댓값 min.y = 10001; // 최댓값 scanf("%d", &n); // n 값 입력..
30초마다 10원씩 청구되는 '영식 요금제' 와 60초마다 15원씩 청구되는 '민식 요금제' 중 어떤 요금제가 저렴한지 계산하는 문제이다. 영식 요금제는 29초까지 10원, 30~59초까지 20원 과 같은 형식이고 민식 요금제는 59초까지 15원, 60~119원까지 30원이다. 조금 쉽게 판단하기 위해 영식 요금제와 민식 요금제를 각각 계산하여 각 요금제에 해당하는 금액을 나중에 곱하였다. #include int main(void) { int n; // 통화시간의 개수 int val[21]; // 각 개수별 통화시간 scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%d", &val[i]); } int payM = 0; // 민식 요금제로 ..
도장이 5개면 500원 할인 도장이 10개면 10% 할인 도장이 15개면 2000원 할인 도장이 20개면 25% 할인 하지만 도장의 개수가 만약 20개라면 25% 할인과 2000원 할인 중 더 많은 할인이 들어가는 것을 선택해야 할 것이다. 다행히도, 도장을 사용하는 개수에는 조건을 달지 않았다. 그럼 그냥 비교해서 계산하는 수학 문제이다. #include int main(void) { int n = 0; // 쿠폰 개수 int price = 0; // 할인 전 금액 int rstPrc = 0; // 결론적으로 지불할 금액 scanf("%d", &n); scanf("%d", &price); if (n >= 20) { // 도장이 20개 이상일 때 if ((price * 0.75) < (pric..
문자를 대소문자 구분없이 입력받아서 소문자로 출력하는 문제이다, 간과한 사실은 대소문자가 섞여있는 문자열을 통째로 tolower 함수에 넣으려 했다가 실패했다는 사실.. 하나하나 문자열을 문자로 분석하여 풀이해야 한다. #include #include int main(void) { int n = 0; char Si[101][21]; /*문자열 (최대 정수 100과 최대 글자 수 20을 고려한 크기)*/ scanf("%d", &n); for (int i = 0; i < n; i++) { scanf("%s", Si[i]); /*Si함수의 행렬 중 행만을 언급함. Si[i][1]~Si[i][21] 칸을 이야기함*/ } int j = 0; for (int i = 0; i < n; i++) { while (S..
문자열에 숫자를 붙여서 출력하는 문제이다. 먼저 문자열을 입력받고, 그 문자열의 앞에 숫자를 추가하는 방법과 따로 출력하여 붙어있는 것처럼 보이는 방법 두 가지가 생각났는데, 일단 후자의 방법을 선택하여 문제를 풀었다. C언어에서는 문자열을 입력받기 위해 배열을 사용해야 한다. 그리고 나는 여러 개의 문자열을 입력받기 위해 이중 배열을 사용하여 한 변수에 입력값을 모두 저장하고자 하였다. #include #include int main(void) { int n = 0; //처음에 입력받을 변수 char a[99][52]; //문자열을 입력받을 배열 scanf("%d", &n); getchar(); for (int i = 0; i < n; i++) { fgets(a[i], sizeof(a[i])..