https://www.acmicpc.net/problem/11944
문제
코드
#include <bits/stdc++.h>
using namespace std;
#include <cmath>
#define PI 3.141592653589793
#define ll long long
string str;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
string n;
int m;
cin >> n >> m;
int len = n.length();
int num = stoi(n);
if (len*num <= m)
{
for (int i=0; i<num; i++)
{
str = str + n;
}
cout << str;
}
else
{
int q = m / n.length();
int k = m % n.length();
for (int i=0; i<q; i++)
{
str = str + n;
}
for (int i=0; i<k; i++)
{
str = str + n[i];
}
cout << str;
}
}
풀이
우선 len*num와 m을 비교하여 2가지 경우로 구분한다(len은 입력받은 string n의 길이며 num은 string n을 int로 변환한 값이다)
len*num <= m 인 경우, 반복문을 통해 str을 붙여나간 후 출력하면 된다.
len*num > m 인 경우는 일단 정수 q와 정수 k를 정의한다.
(q: 입력받은 m을 문자열 n의 길이로 나눈 몫 / k: 입력받은 m을 문자열 n의 길이로 나눈 나머지)
q만큼 반복하는 반복문을 통해 str을 붙여나간다. 이후 k만큼 반복하는 반복문을 통해 입력받았던 string n의 인덱스 0부터 k-1까지를 str에 추가로 붙여준 후 출력하면 된다.
결과
'Koala - 5기 > 기초 알고리즘 스터디' 카테고리의 다른 글
[백준/python] 10773번 - 제로 (0) | 2022.01.22 |
---|---|
[BOJ 19946 / Python 3] 2의 제곱수 계산하기 (0) | 2022.01.22 |
[백준/python] 8958번 ox퀴즈 (0) | 2022.01.20 |
[백준/python] 2495. 연속구간 (2) | 2022.01.19 |
[백준/C++] 9012번 괄호 (1) | 2022.01.18 |