반응형
내 풀이
공백이 있는 피라미드 쌓기
import sys
input = sys.stdin.readline
n = int(input().rstrip())
for i in range(1, n + 1):
print(f"{(n - i) * ' '}{i * '*'}")
결과: 정답
더 옳은 정답
N = int(input())
for i in range(1, N + 1):
print(' ' * (N - i) + '*' * i)
고찰
현재 코드를 다른 언어(예: C, Java, JavaScript 등)로 구현한다면 어떤 차이가 있을까?
C 언어
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
for (int i = 1; i <= n; i++) {
for (int j = 0; j < n - i; j++) {
printf(" ");
}
for (int j = 0; j < i; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
Java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
for (int i = 1; i <= n; i++) {
System.out.println(" ".repeat(n - i) + "*".repeat(i));
}
scanner.close();
}
}
javascript
const n = parseInt(prompt("Enter the number of rows:"));
for (let i = 1; i <= n; i++) {
console.log(" ".repeat(n - i) + "*".repeat(i));
}
피라미드 외에도 비슷한 패턴 출력 문제(정사각형, 다이아몬드, 체스판 등)를 어떻게 해결할 수 있을까?
정사각형, 다이아몬드, 체스판 모두
print()를 활용해서 할 수 있다.
체스판의 경우
for i in range(n):
for j in range(n):
if (i + j) % 2 == 0:
print('#', end=' ')
else:
print(' ', end=' ')
print()
이런 방식으로 해서 채스판처럼 만들 수가 있다.
반응형
'Coding Test (코딩 테스트)' 카테고리의 다른 글
코딩테스트 10일차(2025.01.24) - 분수의 덧셈(프로그래머스) (0) | 2025.01.24 |
---|---|
코딩테스트 9일차(2025.01.23) - 혼자 놀기의 달인(프로그래머스) (0) | 2025.01.23 |
코딩테스트 9일차(2025.01.23) - 2438번(별 찍기 - 1) (0) | 2025.01.23 |
코딩테스트 9일차(2025.01.23) - 11022번(A+B - 8) (0) | 2025.01.23 |
코딩테스트 9일차(2025.01.23) - 11021번(A+B - 7) (0) | 2025.01.23 |