• BOJ 1316번 - 그룹 단어 체커

    BOJ 1316번 - 그룹 단어 체커

    https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net public class Main { private static boolean isGroup(String word) { boolean[] alphabet = new boolean[26]; //알파벳은 26개 boolean result = true; char prev = ' '; for(int i=0; i sc.nextLine()) .filter(Main::isGrou..

  • BOJ 4673번 - 셀프넘버

    BOJ 4673번 - 셀프넘버

    https://jojelly.tistory.com/90 4673 셀프넘버 JAVA 백준 문제풀이 처음엔 무슨말인지 잘 이해가 되지않아 한참을 보았다. 요점은 1~10000이하의 생성자가 없는 수 를 구하는것. [접근방식] 1.boolean 배열을 선언하여 셀프 넘버를 구분했다. (1~10000이하의 수 이기 때 jojelly.tistory.com private static int d(int x) { int sum = x; while(x != 0) { sum = sum + (x % 10); //1의 자리를 누적하여 sum x = x / 10; //1의 자리 연달아 제거 } return sum; } public static void main(String[] args){ boolean[] evals = new..

  • Optional의 옳바른 사용법

    Optional의 옳바른 사용법

    지난주부터 Optional에 대해 어떻게 설명하면 좋을까 고민을 많이 해보고 이리저리 찾아도 봤습니다. 처음에는 단순히 null처리를 쉽게할 수 있는 람다식 문법 중 하나겠구나 생각하면서 써왔습니다. 근데 주의사항이 무려 20가지가 넘는 글도 보이고해서 "이거...그냥 단순 null처리가 아닌데?"라는 생각에 바싹 조사를 했습니다. 오늘은 Optional 사용 시 주의해야할 점을 핵심만 요약해 알아보겠습니다. 1. Optional은 함수의 반환 타입에서 사용하도록 설계되었다. ID에 따라 User 객체를 가져오는 메서드를 예로 들겠습니다. 이때 자동차 저장소에는 ID에 해당하는 Car 객체가 없을수도 있습니다. Car car = CarRepository.findById(); if(car != null) ..

  • BOJ 2577번 - 숫자의 개수

    BOJ 2577번 - 숫자의 개수

    https://www.acmicpc.net/problem/2577 2577번: 숫자의 개수 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다. www.acmicpc.net public class Main { public static void main(String[] args){ Scanner sc = new Scanner(System.in); int targetNum = sc.nextInt() * sc.nextInt() * sc.nextInt(); List numbers = Stream.of(String.valueOf(targetNum).split("")) .map(Integer::valueOf) .collect(Col..

  • BOJ 1110번 -  더하기 사이클

    BOJ 1110번 - 더하기 사이클

    https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net import java.util.Scanner; public class Main { private static int newNum(int num) { int x = num % 10; //1의 자리 int y = num / 10; //1의 자리 제거(10의 자리) int z = (y + x) % 10; //더한 값의 1의 자리 return (x * 10) + z; } public sta..