728x90
백준 2447번 별찍기 - 10
https://www.acmicpc.net/problem/2447
풀이
행 index 를 3으로 나눴을 때 나머지가 1이면서 열 index 를 3으로 나눴을 때 나머지가 1인 경우에만 빈칸으로 출력하면 위와 같이 찍힐 것이다.
하지만, 규칙에서는 행 index 3,4,5 와 열 index 3,4,5 일 때 빈칸이어야한다.
3분할로 자꾸 쪼개지는 느낌의 규칙!
index를 3으로 나눠봤다.
그랬더니 행 index 를 3으로 나눴을 때 나머지가 1이면서 열 index 를 3으로 나눴을 때 나머지가 1인 경우에만 빈칸으로 출력하는 규칙이 적용 가능해졌다.
예외처리 후, 각 인덱스가 0, 0 이면 별표 출력!
만약 0,0도 아니고 3으로 나눴을 때 나머지가 1,1이 아니면 index를 3으로 나눠주는 작업을 반복하면 된다.
나의 코드
N = int(input())
# N = 27
def print_star(r, c):
if r % 3 == 1 and c % 3 == 1:
print(' ', end='')
return
if r == 0 and c == 0:
print('*', end ='')
return
print_star(r // 3, c // 3)
for r in range(N):
for c in range(N):
print_star(r, c)
print()
'알고리즘' 카테고리의 다른 글
프로그래머스, 공원산책 (0) | 2023.08.07 |
---|---|
프로그래머스, 정수를 나선형으로 배치하기 (0) | 2023.07.31 |
백준 2869 달팽이는 올라가고 싶다 (0) | 2023.07.17 |
프로그래머스, 예산 (0) | 2023.07.14 |
백준 8983 사냥꾼 (0) | 2023.07.12 |