(백준/Java) 14624번 : 전북대학교

2021. 5. 22. 09:58·CodingTest

난이도: Bronze 2

프로그래밍 언어: Java

문제명: 전북대학교

푼일자: 2021년 5월

 

주소: https://www.acmicpc.net/problem/14624

 

문제풀기

몇번 테스트 후 쉽게 푼 문제였습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import java.util.Scanner;
 
public class question_14624 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        sc.close();
 
        if (a % 2 == 0) {
            System.out.println("I LOVE CBNU");
        } else {
            for (int i = 0; i < a; i++) System.out.printf("*");
            System.out.printf("\n");
            int c = Math.round(a / 2) + 1;
            for (int i = 0; i < c; i++) {
                if (i == 0) System.out.println(getSpace(a / 2) + "*");
                else {
                    int center = (i == 1) ? i : i * 2 - 1;
                    System.out.println(getSpace(a / 2 - i) + "*" + getSpace(center) + "*" );
                }
            }
        }
    }
 
    public static String getSpace(int count) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < count; i++) sb.append(" ");
        return sb.toString();
    }
}
 
Colored by Color Scripter
cs

 

조금 더 최적화를 진행한 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import java.util.Scanner;
 
public class question_14624 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        sc.close();
 
        if (a % 2 == 0) {
            System.out.println("I LOVE CBNU");
        } else {
            System.out.println(getStackString(a, "*"));
            int c = Math.round(a / 2) + 1;
            for (int i = 0; i < c; i++) {
                if (i == 0) System.out.println(getStackString(a / 2, " ") + "*");
                else {
                    int center = (i == 1) ? i : i * 2 - 1;
                    System.out.println(getStackString(a / 2 - i, " ") + "*" + getStackString(center, " ") + "*" );
                }
            }
        }
    }
 
    public static String getStackString(int count, String str) {
        StringBuilder sb = new StringBuilder();
        while(count-- != 0) sb.append(str);
        return sb.toString();
    }
}
Colored by Color Scripter
cs

 

 

실제로 메모리와 시간이 조금 줄어든 모습을 볼 수 있었습니다.

반응형
저작자표시 비영리 (새창열림)
'CodingTest' 카테고리의 다른 글
  • (백준/Java) 15947번 : 아기 석환 뚜루루 뚜루
  • (프로그래머스/Java) 짝지어 제거하기
  • 코딩테스트 뉴비 백준 19-S Sogang ACM-ICPC Team Application (Bronze) 문제집 시작!
  • (백준/Java) 11720번 : 숫자의 합
Kua
Kua
정보 공유, 개인 정리 공간 입니다.
  • Kua
    Kua's Miscellaneous
    Kua
    • 분류 전체보기 (185)
      • 대문 (2)
      • Tips (25)
        • Chrome (2)
        • Windows (4)
        • IDE (3)
        • 기타 (16)
      • CodingTest (44)
      • Language (20)
        • PHP (5)
        • C# (7)
        • Java (1)
        • Kotlin (7)
      • Framework & Runtime (16)
        • SpringBoot (12)
        • Node.js (2)
        • Vue.js (1)
        • Gradle (1)
      • DevOps (13)
        • Linux (1)
        • Docker (4)
        • Kubernetes (2)
        • Apache Kafka (1)
        • AWS (1)
      • 일상다반사 (53)
        • 도서 (1)
        • 개발 (8)
        • 후기 - IT (7)
        • 후기 - 일상 (13)
        • 차가리 (4)
        • 방송통신대학교 (4)
        • 음식 (2)
      • Games (12)
        • Minecraft (7)
        • VR (2)
        • 그외 (3)
  • 최근 글

  • 인기 글

  • 태그

    갤럭시
    c#
    error
    Kotlin
    codingtest
    java
    알고리즘
    Algorithm
    Windows
    후기
    minecraft
    bronze1
    백준
    Silver5
    bronze2
    github
    spring
    코딩테스트
    Plugin
    Spring Boot
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.0
Kua
(백준/Java) 14624번 : 전북대학교
상단으로

티스토리툴바