
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()
