DeJa
Techvu
DeJa
전체 방문자
53,226
오늘
6
어제
56
  • Techvu (60)
    • DesignPatterns (3)
      • 생성 (0)
      • 구조 (1)
      • 행동 (2)
    • Refactoring (0)
    • DataStructures (0)
    • Algorithms (24)
      • 기본 지식 (12)
      • 문제 풀이 (12)
    • OOP (0)
    • TDD (2)
    • DDD (0)
    • Programming Languages (9)
      • Java (9)
      • Kotlin (0)
    • Spring (1)
    • JPA (7)
    • Web (1)
      • 기본 지식 (1)
      • 실무 경험 (0)
    • CS (12)
      • Network (1)
      • OS (8)
      • DataBase (3)
      • Server (0)
    • Git (1)
    • Conferences (0)

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

  • Study
  • GitHub
  • Medium Blog

인기 글

  • 스키마(Schema)
    2022.01.08
    스키마(Schema)
  • 깃허브 사용 방법
    2021.12.15
    깃허브 사용 방법
  • 자바 버전별 역사 및 특징
    2022.01.12
    자바 버전별 역사 및 특징
  • 세그멘테이션과 페이징
    2021.12.17
    세그멘테이션과 페이징
  • 동시성 이슈(Concurrency Issue)
    2022.03.20
    동시성 이슈(Concurrency Issue)

태그

  • DATABASE
  • java
  • JPA
  • 디자인패턴
  • OS
  • 알고리즘
  • web
  • Spring
  • TDD
  • network
  • CS

최근 댓글

  • 정말 잘 정리된 글! 잘 읽고 갑니다
    qwer
  • 글 잘읽고 가요.
    아이폰
  • 컴파일러자체에서 꼬리재귀를 지원하지 않으니 static으로⋯
    aaa
  • 압도적 감사
    ㅇㅇㅇ

최근 글

  • Write a test code right now
    2022.03.24
    Write a test code right now
  • 동시성 이슈(Concurrency Issue)
    2022.03.20
    동시성 이슈(Concurrency Issue)
  • POJO, JavaBean, Entity, VO, DTO
    2022.02.08
    POJO, JavaBean, Entity, VO, DTO
  • TDD with Agile
    2022.02.05
    TDD with Agile
  • Java Stream 기초
    2022.01.23
    Java Stream 기초

티스토리

hELLO · Designed By 정상우.
DeJa

Techvu

[BOJ 18406] 럭키 스트레이트
Algorithms/문제 풀이

[BOJ 18406] 럭키 스트레이트

2021. 12. 16. 01:23
728x90

럭키 스트레이트

BOJ 18406 : 럭키 스트레이트

구현

public class Main {

    private static String N;
    private static int left = 0;
    private static int right = 0;

    public static void main(String[] args) {
        input();
        solution();
    }

    private static void input() {
        Scanner sc = new Scanner(System.in);
        N = sc.nextLine();
    }

    private static void solution() {
        String[] numbers = N.split("");
        int middle = numbers.length / 2;
        for (int i = 0; i < numbers.length; i++) {
            int number = Integer.parseInt(numbers[i]);
            if (i < middle) {
                left += number;
            } else {
                right += number;
            }
        }

        if(left == right) {
            System.out.println("LUCKY");
        } else {
            System.out.println("READY");
        }
    }
}

substring 을 이용할 수도 있다.

int middle = N.length() / 2;

String leftArea = N.substring(0, middle);
String rightArea = N.substring(middle);

int left = 0;
int right = 0;

for (int i = 0; i < a.length(); i++) {
    // char 값을 int 로 변환하기 위해 '0' 을 빼준다.
    left += leftArea.charAt(i) - '0'; 
    right += rightArea.charAt(i) - '0';
}

문자를 숫자로 변환하기 위해 아스키 코드값을 빼는 것보다 Character.getNumericValue(char) 를 써주는 것이 가독성 측면에서는 더 좋아보인다.

Character.getNumericValue(leftArea.charAt(i));
Character.getNumericValue(rightArea.charAt(i));

또는 람다를 활용할 수있다.

String[] numbers = N.split("");
int middle = N.length() / 2;
int left = IntStream.range(0, middle).map(i -> Integer.parseInt(numbers[i])).sum();
int right = IntStream.range(middle, N.length()).map(i -> Integer.parseInt(numbers[i])).sum();
728x90
저작자표시 비영리 변경금지
  • 카카오스토리
  • 트위터
  • 페이스북

'Algorithms > 문제 풀이' 카테고리의 다른 글

[BOJ 16234] 인구 이동  (0) 2021.12.31
[BOJ 1715] 카드 정렬하기  (0) 2021.12.18
[BOJ 18352] 특정 거리의 도시 찾기  (0) 2021.12.18
[BOJ 3190] 뱀  (0) 2021.12.18
이것이 코딩 테스트다 : 모험가 길드  (0) 2021.12.18
    'Algorithms/문제 풀이' 카테고리의 다른 글
    • [BOJ 1715] 카드 정렬하기
    • [BOJ 18352] 특정 거리의 도시 찾기
    • [BOJ 3190] 뱀
    • 이것이 코딩 테스트다 : 모험가 길드
    알고리즘
    DeJa
    DeJa
    Tech Blog
    댓글쓰기
    이것이 코딩 테스트다 : 모험가 길드
    다음 글
    이것이 코딩 테스트다 : 모험가 길드

    티스토리툴바