새소식

Programmers Coding Test/Java

[프로그래머스 120823] Java - 코딩테스트 입문 / 직각삼각형 출력하기

  • -

 

 

직각삼각형 출력하기

 

 

 

https://school.programmers.co.kr/learn/courses/30/lessons/120823

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

1)  문제

"*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 
정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요.
제한사항
1 ≤ n ≤ 10

 

 

 

2)  예시

 

 

입력 #1
3


출력 #1
*
**
***

 

 

 

 

3)  풀이

 

 

0. 자바유틸리티의 Scanner 클래스를 사용하기위해 import 해줍니다.

● import java.util.Scanner;

Scanner 클래스는 사용자로부터 키보드 입력을 받기 위해 사용되며, 
System.in을 통해 표준 입력에서 데이터를 읽을 수 있게 해줍니다. (키보드 엔터)

 

 

 

 

1. 클래스 선언을 해줍니다

● class Solution {

클래스명은 대문자로 시작해야하고, 정답이라는 의미로 Solution이라는 단어를 사용하였습니다.

 

 

 

 

2. 자바 기본 main 메소드를 선언해줍니다.

● public static void main(String[] args) {

 

public static void main이란 무엇인가. 아래 링크를 참조하시면 됩니다.

https://devwarriorjungi.tistory.com/entry/public-static-void-mainString-args%EA%B0%80-%EB%AC%B4%EC%97%87%EC%9D%BC%EA%B9%8C

 

[Java] public static void main(String[] args)가 무엇일까?

public static void main(String[] args) 1) 이게 무엇일까? Java 프로그램의 진입점(Entry Point)을 나타내는 메소드 시그니처입니다. 이 메소드는 Java 프로그램이 실행될 때 자동으로 호출되며, 프로그램의 실

devwarriorjungi.tistory.com

 

 

 

 

3. Scanner 클래스의 새로운 객체 sc를 선언하고 사용자의 입력은 System.in 즉, 키보드의 입력으로 받겠다는 것입니다.

여기서 키보드의 입력이란 아무키나 막 누르는 것이 아니라, 엔터 입력을 말합니다.

그리고 정수변수 n을 선언해주는데, 사용자가 입력한 값 중에서 정수를 가져와서 변수 n에 저장합니다.

      Scanner sc = new Scanner(System.in);

        int n = sc.nextInt();

 

 

 

 

4-1. 인덱스 i를 이용한 주황색 for반복문을 통해 이등변 삼각형의 높이를 그려줍니다.

여기서 println()은 줄바꿈 역할을 해줍니다.

 

4-2. 인덱스 j를 이용한 파란색 for반복문을 통해 이등변 삼각형의 * (너비)를 그려줍니다.

print이니 줄바꿈 없이 그려주며, 여기서 *의 개수는 i보다 작게 반복됩니다.

 

      for(int i=0; i<n; i++){
            for(int j=0; j<=i; j++){
                Systehttp://m.out.print("*");
            }
            System.out.println();
        }

    }
}
   

 

※ print와 println의 차이

System.out.print("*");      줄바꿈 없이 계속해서 문자를 출력
System.out.println("*");    출력 후에 줄바꿈을 추가

 

 

 

 

 

 

 

4)  코드

 

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        for(int i=0; i<n; i++){
            for(int j=0; j<=i; j++){
                System.out.print("*");
            }
            System.out.println();
        }

    }
}

 

 

 

 

* repeat 메소드를 사용하는 코드

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();

        for(int i=1; i<=n; i++){
            System.out.println("*".repeat(i));
        }
    }
}

※ repeat 메소드

자바 11부터 도입된, String 클래스 뒤에 .reapeat(n)를 붙여, 해당 문자열을 n만큼 반복하여 생성합니다.

 

 

 

 

 

 

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.