[백준] 2448 별 찍기 - 11 쉽지 않은 백트래킹 & 재귀함수 유형 !

2022. 2. 6. 13:28·Algorithm (PS)
728x90

https://www.acmicpc.net/problem/2448

 

2448번: 별 찍기 - 11

첫째 줄에 N이 주어진다. N은 항상 3×2k 수이다. (3, 6, 12, 24, 48, ...) (0 ≤ k ≤ 10, k는 정수)

www.acmicpc.net

1. 우선 graph의 원소들을 초기화 한다 ! 

2. 나는 n ==3 이면 가장 기본 모양의 삼각형이므로, n==3 이면 별 모양을 넣어주는 걸로 풀었다

n==3일때의 삼각형 모양이 반복되어 만들어지기 때문이다 !! 

3. n==3 일때 별을 찍고, 이 모양이 반복되므로, x좌표와 y좌표값을 찾아서 반복해 주면 되는데, 

그것이 star 함수를 재귀 호출 한 부분이다 

왼쪽 아래 부분, 오른쪽 아래 부분, 그리고 현재 x,y 부분을 나눠서 별을 찍는다고 생각하면 간단하다..

star(x, y, NEXT) // 맨 위 그러니까 현재 x, y 좌표부터 계산하는 부분이다. 

star(x+NEXT, y+NEXT, NEXT) // 오른쪽 아래 부분

star(x+NEXT, y-NEXT, NEXT) // 왼쪽 아래 부분

n = int(input())

graph = [[' ']*2*n for _ in range(n)]

def star(x, y, n):
    if n == 3:
        graph[x][y] = '*'
        graph[x+1][y-1] = graph[x+1][y+1] = '*'
        for i in range(-2, 3):
            graph[x+2][y+i] = '*'
    else:
        NEXT = n//2
        star(x, y, NEXT)
        star(x+NEXT, y+NEXT, NEXT)
        star(x+NEXT, y-NEXT, NEXT)

star(0, n-1, n)
for i in graph:
    print("".join(i))

  

728x90

'Algorithm (PS)' 카테고리의 다른 글

정렬 알고리즘  (0) 2022.02.07
[프로그래머스] 해시 - 완주하지 못한 선수 , dictionary in Python 정리  (0) 2022.02.06
[백준] 1427 소트인사이드 Python  (0) 2022.02.06
[백준] 2225 합분해 in Python <점화식을 테이블을 그리면 쉽게 구하는 DP문제>  (0) 2022.02.05
[백준] 2178 미로탐색 (BFS 풀이)  (0) 2022.02.05
'Algorithm (PS)' 카테고리의 다른 글
  • 정렬 알고리즘
  • [프로그래머스] 해시 - 완주하지 못한 선수 , dictionary in Python 정리
  • [백준] 1427 소트인사이드 Python
  • [백준] 2225 합분해 in Python <점화식을 테이블을 그리면 쉽게 구하는 DP문제>
minjiwoo
minjiwoo
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minjiwoo
minji's engineering note
minjiwoo
전체
오늘
어제
  • 분류 전체보기 (613)
    • Data Engineering (42)
      • Apache Spark (11)
      • Databricks & Delta Lake (9)
      • Airflow (3)
      • SQL (6)
      • Trouble Shooting (2)
      • Hadoop (2)
      • MLOps (1)
    • Cloud Engineering (104)
      • AWS (23)
      • Linux 🐧 (29)
      • Docker 🐳 (21)
      • Kubernetes ⚙️ (20)
      • Ansible (10)
    • Computer Science (87)
      • 네트워크 (9)
      • 운영체제 (25)
      • 정보처리기사 (48)
      • CS 기술 면접 스터디 (3)
    • Programming Languages (27)
      • Python (17)
      • C와 C++ (10)
    • Backend (5)
      • Django (2)
    • 프로젝트 (2)
      • 테크포임팩트 (2)
    • iOS (11)
      • 레이블러리 (2)
    • Algorithm (PS) (275)
      • LeetCode (6)
    • 개발일기 (30)
      • 내돈내산 후기🎮 (3)
      • 개발자 취준생 (5)
      • Today I Learned (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Hi there

인기 글

태그

  • Databricks
  • 백준
  • BFS
  • 파이썬
  • 클라우드
  • 알고리즘
  • 데이터브릭스
  • 빅데이터
  • 쿠버네티스
  • 데이터엔지니어링
  • 카카오코딩테스트
  • dfs
  • docker
  • Leetcode
  • dp
  • 스파크
  • linux
  • 데이터엔지니어
  • 프로그래머스
  • Kubernetes
  • 리눅스
  • AWS
  • 백트래킹
  • 코딩테스트
  • ansible
  • python
  • Swift
  • SPARK
  • 운영체제
  • EC2

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
minjiwoo
[백준] 2448 별 찍기 - 11 쉽지 않은 백트래킹 & 재귀함수 유형 !
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.