BOJ 1009 분산처리
2023-05-25
1 min
자연수 N, M이 주어졌을 때, 1부터 N×M까지 출력 형식대로 출력해보자.
첫째 줄에 공백 한 칸으로 구분한 N, M이 주어진다. 두 수는 1,000보다 작거나 같은 자연수이다.
총 N개의 줄을 출력해야 한다. 각 줄에는 M개의 정수를 공백 한 칸으로 구분해 출력해야 한다. 1번 줄에는 1부터 M까지, 2번 줄에는 M+1부터 2×M까지, ..., N번 줄에는 (N-1)×M+1부터 N×M까지 출력해야 한다.
모든 줄의 시작과 끝에 공백이 있으면 안되고, 모든 줄은 줄바꿈(\n)으로 끝나야 한다.
해당 문제는 별 찍기와 다르지 않은 단순 구현문제이다.
별 찍기 문제에서는 인덱스를 따로 저장할 필요가 없었지만 해당 문제에서는 인덱스를 저장하고 증가시키며 출력하면 해결할 수 있다.
이 때, 문제의 출력 부분에 명시된 "모든 줄의 시작과 끝에 공백이 있으면 안되고, 모든 줄은 줄바꿈(\n)으로 끝나야 한다."의 제약 조건에 유의하여 구현해야 한다.
import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); // N, M 입력 String[] s = br.readLine().split(" "); int N = Integer.parseInt(s[0]); int M = Integer.parseInt(s[1]); int idx = 1; // 인덱스 변수 for(int i = 0; i < N; i++) { for(int j = 0; j < M; j++) { if(j == M - 1) sb.append(idx +"\n"); // 마지막일 경우 다음줄로 else sb.append(idx +" "); // 마지막이 아닐 경우 한칸 띄기 idx++; } } System.out.println(sb); } }
#include <iostream> #include <string> #define fastio ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr) #define endl '\n' using namespace std; int main() { fastio; // N, M 입력 int N, M; cin >> N >> M; int idx = 1; // 인덱스 변수 for(int i = 0; i < N; i++) { for(int j = 0; j < M; j++) { if(j == M - 1) cout << idx << endl; // 마지막일 경우 다음줄로 else cout << idx << " "; // 마지막이 아닐 경우 한칸 띄기 idx++; } } return 0; }
fun main(args: Array<String>) = with(System.`in`.bufferedReader()) { // N, M 입력 var s = readLine().split(" ") var N = s[0].toInt() var M = s[1].toInt() var sb = StringBuilder() var idx = 1 // 인덱스 변수 for(i in 0 until N) { for(j in 0 until M) { if(j == M - 1) { // 마지막일 경우 다음줄로 sb.append(idx.toString() +"\n") } else { // 마지막이 아닐 경우 한칸 띄기 sb.append(idx.toString() +" ") } idx++ } } print(sb) }
from sys import stdin def main(): # N, M 입력 s = stdin.readline().split(' ') N = int(s[0]) M = int(s[1]) sb = [] idx = 1 # 인덱스 변수 for i in range(0, N): for j in range(0, M): if j == M - 1: # 마지막일 경우 다음줄로 sb.append(str(idx) +"\n") else: # 마지막이 아닐 경우 한칸 띄기 sb.append(str(idx) +" ") idx += 1 print("".join(sb)) if __name__ == "__main__": main()
import Foundation func main() { // N, M 입력 var s = readLine()!.split(separator: " ") var N = Int(s[0])! var M = Int(s[1])! var sb = "" var idx = 1 // 인덱스 변수 for i in 0..<N { for j in 0..<M { if j == M - 1 { // 마지막일 경우 다음줄로 sb.write(String(idx)) sb.write("\n") } else { // 마지막이 아닐 경우 한칸 띄기 sb.write(String(idx)) sb.write(" ") } idx += 1 } } print(sb) } main()