[프로그래머스] 1. 직사각형 별찍기

코딩테스트 스터디 시작!!😎

무더운 여름이 다 가고 비가 주륵주륵 내리며 선선한 가을의 시작을 알렸다. 얼마 전, 멋쟁이 사자처럼 9기 해커톤도 잘 마무리 되고!🦁 일주일 동안 푸우으우욱~ 쉬고 있던 나는..!
이제 푹 쉬었으니 공부를 다시 시작해야겠다는 마음이 들었다.🙄ㅎㅎ

나도 이제 3학년 2학기...
코딩테스트를 슬슬 준비해야겠다고 생각해서 지인 4명과 함께 코딩테스트 스터디를 시작했다.


<스터디 세부 사항>

언어 : Java
문제 : 프로그래머스 코딩테스트 단계별 연습문제
단계 : 1단계 3문제, 2단계 1문제
일시 : 매주 금요일 22시, 1~2시간 동안 스터디


첫 번째로 도전한 문제는 직사각형 별 찍기 문제!

문제는 여기를 참고

자바를 거의 1년 반만에 다뤄서 문법이 가물가물했는데, 이번 문제를 풀면서 예전에 배웠던 기억도 점점 되살아났다.

별 찍기는 C 언에 배울 때부터 많이 풀었던 문제인데, 그 때 경험을 되살려서 이중 for 문으로 풀어보았다.


먼저 완성된 코드는 다음과 같다.

import java.util.Scanner;

public class Star {

	public static void main(String[] args) {
		Scanner scan = new Scanner (System.in);
		int n = scan.nextInt(); //가로
		int m = scan.nextInt(); //세로
		for (int i = 0; i < m; i++) {
			for (int j = 0; j < n; j++) {
				System.out.print("*");
			}
			System.out.print("\n");
		}
	}

}

결과 출력 화면


하나씩 찬찬히 뜯어보자...

Java는 class가 가장 먼저 위치해 있다는 사실을 오랜만에 다시 깨달았다. ㅎㅎ 그동안 파이썬만 다루다보니 잊었던 사실이다.
project 파일 하위에 class파일을 만들 때 main 함수를 자동으로 생성하기를 원하는 항목에 체크를 하면 main 함수도 자동으로 생성이 된다.

class 이름은 Star로 했고, 특별히 다른 클래스와 함수를 이용할 필요 없이 main만 이용하기로 했다.

입력을 받기 위해서 Scanner를 import 해주고,
scan 객체를 생성해주었다.
이후, 생성한 scan 객체를 이용하여 n과 m이라는 정수 변수에 정수 타입으로 입력을 받도록 했다.
n은 가로의 별 개수이고, m은 세로의 별 개수이다.

첫 번째 for 문으로 세로로 몇 번을 반복할 지 정했다.
미리 입력받았던 m 변수를 사용하여 행의 개수만큼 반복할 수 있도록 했다.

그 for문 안에서 또 하나의 for문을 사용하여 * 이 가로로 n번 찍히도록 print를 써줬다.

예전에 과제할 때에는 println을 많이 썼는데, println은 끝에 줄바꿈이 들어가고, print는 줄바꿈이 들어가지 않는다.
이 문제에서는 줄 바꿈이 필요하지 않다고 판단되어 print를 사용해주었으며, 한 줄을 다 출력한 이후에는 줄을 바꿔주어야 하기 때문에 두 번째 for 문이 끝나고 줄바꿈 문자를 출력하도록 하여 줄을 바꿔주었다.

딱히 설명이라고 할 것 없는 간단한 코드이지만 스터디 동료들과 비교했을 때 어떤 결과가 나올 지 정말 궁금하다! 더 효율적으로 작성한 분이 계시면 나도 더 좋은 방향으로 발전할 수 있도록 많이 배워야겠다ㅎㅎㅎ


오늘은 여기까지! 😊

좋은 웹페이지 즐겨찾기