이 포스트는 프로그래밍 문제 사이트 백준 Online Judge의 Solved.ac 기준 Class 1+ 에센셜 문제들에 해당하는 2438번 : 별 찍기 - 1, 2562번 : 최댓값, 2675번 : 문자열 반복 문제들에 대한 풀이 코드와 해설을 다룹니다.
2438번 : 별 찍기 - 1
간단한 반복문을 활용하는 출력 문제입니다.
#include<stdio.h>
int main() {
int N;
scanf("%d", &N);
for(int i=1; i<=N; i++) {
for(int j=1; j<=i; j++) printf("*");
printf("\n");
}
}
2개의 for문에 대한 범위 설정을 배우는 문제입니다.
i는 1부터 N까지로 잡아주고, 안쪽 루프에서 j는 1부터 i까지 출력해주면 됩니다.
안쪽 루프가 끝날 때마다 개행 문자를 출력해주어야 합니다.
2562번 : 최댓값
9개의 고정된 개수의 자연수들 중에서 최댓값을 찾아 출력하는 문제입니다.
자연수이므로 1 이상의 정수이기 때문에 초기값 설정이 어렵지 않습니다.
#include<stdio.h>
int main() {
int max = 0, num, order;
for(int i=0; i<9; i++) {
scanf("%d", &num);
if(num > max) max = num, order = i+1;
}
printf("%d\n%d", max, order);
}
위에서 언급한대로 모든 입력이 자연수이므로 초기 max를 0으로 설정한 뒤 max보다 큰 입력에 대해 최댓값을 바꿔주면됩니다.
최댓값이 몇 번째인지 그 순서 또한 출력하라고 하였으므로 order 변수를 선언하여 해당 번호를 저장해서 출력해주면 됩니다.
2675번 : 문자열 반복
입력받은 문자열을 입력된 정수만큼 각 문자를 반복해서 출력하는 문제입니다.
문자열의 길이는 20을 넘지 않으므로 입력받는 즉시 처리하지 않더라도 문자 배열에 저장 및 접근해서 여러 번 출력시켜주면 됩니다.
#include<stdio.h>
#include<string.h>
int main() {
int T, R;
char str[25];
scanf("%d", &T);
for(int i=0; i<T; i++) {
scanf("%d %s", &R, str);
for(int j=0; j<strlen(str); j++)
for(int k=0; k<R; k++) printf("%c", str[j]);
printf("\n");
}
}
테스트케이스 T에 대한 반복문이 하나의 루프를 차지하고 있기 때문에 안쪽에 있는 이중 반복문까지 해서 총 3개의 반복문을 구현해야 합니다.
T를 입력받고, 각 T에 대해 문자열을 입력받아 str로 선언한 string에 저장합니다.
이후 strlen 함수를 이용하여 문자열의 길이만큼 각 문자에 대해 R번 출력을 수행해주면 됩니다.
'알고리즘 > 백준(BOJ) 문제풀이' 카테고리의 다른 글
[C언어 백준 풀이][Bronze] 4153번 : 직각삼각형 / 10250번 : ACM 호텔 / 2798번 : 블랙잭 / 11050번 : 이항 계수 1 (0) | 2021.11.23 |
---|---|
[C언어 백준 풀이][Bronze] Class 1+ 에센셜 10문제 풀이 (0) | 2021.11.23 |
[C언어 백준 풀이][Diamond V] 1557번 : 제곱 ㄴㄴ (포함과 배제의 원리 + 이진 탐색) (0) | 2021.11.23 |
[C언어 백준 풀이][Gold V] 14502번 : 연구소 (재귀함수 브루트포스 + BFS 구현) (0) | 2021.11.22 |
[C언어 백준 풀이][Gold V] 1011번 : Fly me to the Alpha Centauri (제곱근 sqrt 활용 조건식) (0) | 2021.11.22 |