아이딕
아이딕 IT블로그
아이딕
전체 방문자
오늘
어제
  • 분류 전체보기 (44)
    • Algorithm (9)
      • BackJoon (0)
      • Programmers (5)
      • Data Structure (4)
    • Java (5)
    • Spring (1)
    • SQL (2)
      • MSSQL (1)
    • JavaScript (7)
    • React (3)
    • HTML (0)
    • CSS (1)
    • Build Tool (0)
      • Gradle (0)
      • Maven (0)
    • Tomcat (1)
    • Git (2)
    • IDE (3)
    • Error Log (1)
    • 개발 지식 (9)
    • 도서 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바
  • 호이스팅
  • 변수호이스팅
  • 인텔리제이
  • springboot
  • 자바자료구조
  • JVM
  • 리액트
  • java Data Structure
  • codingTest
  • 자바스크립트
  • 알고리즘
  • react
  • Java 문자열 처리 최적화
  • 깃허브
  • GitHub
  • programmers
  • Git
  • 코딩테스트
  • 블록레벨스코프
  • 자료구조
  • 프로그래머스
  • JavaScript
  • Java
  • VSCode
  • 함수레벨스코프
  • Algorithm
  • ES6
  • 스코프
  • IntelliJ

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
아이딕

아이딕 IT블로그

Algorithm/Programmers

프로그래머스[Level 1] - 직사각형 별 찍기 (java)

2022. 9. 13. 09:05
728x90
반응형

- 문제 설명

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

 

- 제한 조건

  • n과 m은 각각 1000 이하인 자연수입니다.

- 나의 풀이

import java.util.Scanner;

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

        for(int i = 0; i < b; i++){ //*의 세로
            for(int j = 0; j < a; j++){ //*읠 가로 
                System.out.print("*");
            }
            System.out.println(); //개행
        }
    }
}

 

반복문인 for문을 이용해서 바깥 for문을 돌면서 println를 지나면서 *의 세로의 갯수 찍어주고, 안쪽 for문을 돌면서 print를  *의 가로 갯수를 찍어주는 코드로 문제의 설명과 같이 *로 직사각형을 찍어주는 코드로 문제룰 풀었다. 

 

 

-다른사람의 풀이

import java.util.Scanner;
import java.util.stream.IntStream;

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

        StringBuilder sb = new StringBuilder();
        IntStream.range(0, a).forEach(s -> sb.append("*"));
        IntStream.range(0, b).forEach(s -> System.out.println(sb.toString()));
    }
}

 

별찍기.. 자바를 처음 자바 반복문을 배울 때, 많이 해봤던 문제이다. 그래서 인지 머릿속에 문제의 풀이가 박혀있어서 고민 없이 코드를 풀고, 다른사람들의 풀이를 봤는데, 풀이가 다양했다. 그 중에서 스트림 람다식을 이용해서 풀이를 한 코드가 눈에 들어왔다. 자바 공부를 해보자는 목적으로 코딩테스트를 시작했는데, 역시.. 다른 사람의 코드를 보는게 공부가 많이 되는 것 같다. (성능적으로는 어떤지 잘 모르겠지만 ㅠ )

 

자바를 사용하면서 람다식을 써본적이 없었는데, 이번 기회에 람다식과 스트림을 알아보고 넘어가야겠다..

 

문제 출처 : https://programmers.co.kr/learn/challenges

728x90
반응형

'Algorithm > Programmers' 카테고리의 다른 글

프로그래머스[Level 1] - 정수 제곱근 판별 (java)  (0) 2022.10.03
프로그래머스[Level 1] - 평균 구하기 (java)  (0) 2022.09.15
프로그래머스[Level 1] - 자릿수 더하기 (java)  (0) 2022.09.15
프로그래머스[Level 1] - 나머지가 1이 되는 수 찾기 (java)  (0) 2022.09.14
    'Algorithm/Programmers' 카테고리의 다른 글
    • 프로그래머스[Level 1] - 정수 제곱근 판별 (java)
    • 프로그래머스[Level 1] - 평균 구하기 (java)
    • 프로그래머스[Level 1] - 자릿수 더하기 (java)
    • 프로그래머스[Level 1] - 나머지가 1이 되는 수 찾기 (java)
    아이딕
    아이딕
    IT, 개발, 공부, 정리, 기타

    티스토리툴바