cmod.ify

[코드트리] 체크 다이아몬드 본문

BASIC/코딩테스트

[코드트리] 체크 다이아몬드

modifyC 2023. 10. 24. 02:17
728x90
반응형

문제

 

가로 세로 2n-1 크기에 해당하는 격자에 체크 다이아몬드 모양을 그리는 코드를 작성해 보세요.

규칙은 다음과 같습니다.

  • n = 3 일 때
  *
 * *
* * *
 * *
  *
  • n = 4 일 때
  •  
   *
  * *
 * * *
* * * *
 * * *
  * *
   *

 

문제 풀이

n = int(input())

space = ' '
star = '*'

for i in range(1, n+1, 1):
    for j in range(n-i, 0, -1):
        print(space, end='')
    for k in range(i):
        print(star, end=space)
    print()

for i in range(n-1, 0, -1):
    for j in range(n-i, 0, -1):
        print(space, end='')
    for k in range(i):
        print(star, end=space)
    print()

첫 번째 for 문은 n까지 증가하는 행을 맡고 있다.

          n에서 i를 빼면 필요한 공백개수가 나오는데 그것을 출력한다.

           별 모양을 한 칸 간격을 두어(end=space) 출력한다.

     다음 줄로 넘어간다.

두 번째 for 문은 n-1부터 감소하는 행이다.

          n에서 i를 빼면 필요한 공백개수가 나오는데 그것을 출력한다.            

          별 모양을 한 칸 간격을 두어(end=space) 출력한다.

     다음 줄로 넘어간다.

 

공백이 아닌 0을 넣어서 이해하면 더 쉽다.

공백 대신 0

여담

처음엔 총개수에서 공백 개수만큼 세어 배열을 이용해 별과 같이 배치하려고 접근했었다. 말도 안 되는 접근이었다;

하나씩 배열에 append 했고 그 결과는 당연하게 앞에서부터 배치하면 이러한 모양으로 나왔었다.

*
**
***
**
*

결국 포기하고 구글링 한 결과 뒤에 공백은 신경 쓸 필요가 없다는 점과 end=space를 사용하면 쉽게 간격을 벌릴 수 있다는 점을 알았다.(아니 알고 있던 사실인데 왜 생각 못 했지?)

 


https://www.codetree.ai/missions/4/problems/check-diamond?&utm_source=clipboard&utm_medium=text

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

728x90
반응형

'BASIC > 코딩테스트' 카테고리의 다른 글

[1764] 듣보잡  (0) 2025.12.19
[11723] 집합  (0) 2025.12.18
[1620] 나는야 포켓몬 마스터 이다솜  (0) 2025.12.18
[코드트리] 두 개의 직각삼각형  (0) 2023.10.22
[코드트리] 공약수  (0) 2023.10.22