HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
📎
운영진을 위한 문서 모음
/
🤧
주차별 액션 안내
/
🌮
14~18주차
/
💌
18주차 액션 포인트
/임효성/
📔
회고의 사본
/
도형 만들기
도형 만들기
도형 만들기

도형 만들기

Language
Java

도형 만들기

💡
입력값이 커질수록 도형 크기가 일정하게 커져야함.

마름모

마름모는 네 변의 길이가 모두 같은 사각형이다.
notion image
 
  • 역삼각형 그리는 방법
    • notion image
       
public class Main{ public static void main(String[] args) { int h = 5; for(int r = 0; r<h; r++){ int emptyCnt = r; while(emptyCnt>0){ System.out.print(" "); emptyCnt--; } int starCnt = (2*h-2*r-1); while(starCnt>0){ System.out.print("*"); starCnt--; } System.out.print("\n"); } } }
  • 마름모 그리기
    • notion image
       
public class Main{ public static void main(String[] args) { int h = 3; //높이 //정삼각형 그리기 for(int r = 0; r<h;r++){ int emptyCnt = h-r; while(emptyCnt>0){ System.out.print(" "); emptyCnt--; } int starCnt = 2*r+1; while(starCnt>0){ System.out.print("*"); starCnt--; } System.out.print("\n"); } //중앙선 그리기 for(int b=2*h+1;b>0;b--){ System.out.print("*"); } System.out.print("\n"); //역삼각형 그리기 for(int r=0; r<h; r++){ int emptyCnt = r+1; while(emptyCnt>0){ System.out.print(" "); emptyCnt--; } int starCnt = 2*h-2*r-1; while(starCnt>0){ System.out.print("*"); starCnt--; } System.out.print("\n"); } } }

원

  • 이차원 배열
notion image
  1. int : 배열의 요소로 저장되는 변수 타입
  1. arr : 배열 이름 선언
  1. int[2][3] : 배열의 row, column 선언
int[][] arr = new int[2][3]; int k = 10; for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { arr[i][j] = k; // 인덱스를 이용한 초기화 k += 10; } } for (int i = 0; i < arr.length; i++) { for (int j = 0; j < arr[i].length; j++) { System.out.print(arr[i][j] + " "); } System.out.println(); } //10 20 30 //40 50 60
  • 원 그리기
    • 방정식 : x^2+y^2=r^2
      notion image
       
public class Main { public static void main(String[] args) { // r=radius int r = 3; int MAT_SIZE = 2 * r + 1; char[][] MAT = new char[MAT_SIZE][MAT_SIZE]; for (int x = -r; x <= r; x++) { for (int y = -r; y <= r; y++) { if (x * x + y * y <= r * r) { MAT[x + r][y + r] = '*'; } else { MAT[x + r][y + r] = ' '; } } } for (int x = 0; x < MAT_SIZE; x++) { for (int y = 0; y < MAT_SIZE; y++) { System.out.print(String.format("%2c", MAT[x][y])); } System.out.println(""); } } }

마치며

배열과 반복문을 통해 도형을 만들어보면서 어려우면 무한대로 어려워질 수 있다는 걸 느꼈다. 개념을 배울 땐 예시가 쉬워서 난이도가 높지 않다고 생각했는데, 중첩 반복문부터 2차원 배열까지 나오니 머리가 아팠다. 처음 마름모를 만들 때만 해도 마름모를 만들었으니 순서도며 모든 과정을 깨달은 것 같았는데 원을 그리며 다시 좌절했다.
그리고 별과 로고는 아직 접근하지도 못했다는 게 아쉽다. 순서도와 반복문을 자유자재로 쓰지 못하면 그 이상의 단계로 나아갈 수 없다는 말을 듣고 조금 우울해졌다. 좀 더 노력해야 하는 데 온전히 코딩 공부에만 집중하는 게 어렵다.