본문 바로가기
Online-Judge/Baekjoon

[Baekjoon] C++ 11944번 NN

by eungbbang 2022. 1. 9.
반응형

https://www.acmicpc.net/problem/11944

 

11944번: NN

첫 번째 줄에는 N, M이 주어진다. (1 ≤ N, M ≤ 2016)

www.acmicpc.net

 


 

 

1. n과 m을 입력 받는다.

int n = 0, m = 0;
cin >> n >> m;

 

 

2. for문을 돌며 문자열 str에 n을 n번만큼 이어 붙여준다.

n은 int형이므로 <string> 헤더에 있는 to_string을 사용하여 string으로 변환한 뒤 이어 붙인다.

string str = "";

for (int i = 0; i < n; i++) {
	//문자열 이어 붙이기
	str += to_string(n);
}

 

 

3. 이때, 이어 붙인 str의 길이가 m보다 크거나 같다면 더이상 길게 출력하지 않으므로 substr을 통해 길이 m만큼 str을 잘라주고 for문을 빠져나온다.

만약 n번 이어 붙인 str의 길이가 m보다 작다면 if문에 걸리지 않아도 자동으로 for문을 빠져 나오기 때문에 체크해주지 않아도 된다.

for (int i = 0; i < n; i++) {
	
    //문자열 이어 붙이기
    str += to_string(n);
	
    //만약 str의 길이가 m보다 길거나 같다면 빠져나온다
    if (str.size() >= m) {
		str = str.substr(0, m);
		break;
    }
}

 

 

4. 문자열 str을 출력한다.

cout << str << endl;

 

 


[전체 코드]

#include <iostream>
#include <string>
using namespace std;

int main() {

	int n = 0, m = 0;
	cin >> n >> m;

	string str = "";

	for (int i = 0; i < n; i++) {
		str += to_string(n);

		if (str.size() >= m) {
			str = str.substr(0, m);
			break;
		}
	}

	cout << str << endl;

}
반응형

댓글