본문 바로가기
반응형

분류 전체보기61

백준 1157번 단어 공부 자바 java 문제 풀이 대문자 A ~ Z 알파벳 개수를 세기 위한 26개 배열을 만들고 char형 'A'의 값의 int형 값은 65 입력받은 문자열의 문자를 char형 → int형으로 변환해서 해당 배열에 인덱스의 값을 +1을 함 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.nextLine(); int[] strCount = new int[26]; //A ~ Z 알파벳 26개 int max = 0; int maxIndex = 0; str = str.toUpperCase(); //알파벳 수 계산 for (int.. 2021. 4. 15.
백준 1011번 Fly me to the Alpha Centauri 자바 java 문제 풀이 거리의 개수, 최댓값 (이동한 거리의 값들 중 최댓값)이 2번 나타나며 1씩 증가하는 규칙을 보인다 거리의 범위에서 최대값의 제곱을 하면 해당 범위의 첫 번째를 나타내게 된다 최댓값 6 → 36 = (31 ~ 36), (37 ~ 42) 최댓값 7 → 49 = (43 ~ 49), (50 ~ 56) 최댓값은 거리의 제곱근의 반올림을 하면 구할 수 있다 작동 횟수는 거리 > 최댓값 제곱 이면 최댓값 * 2 거리 ≤ 최대값 제곱 이면 최대값 * 2 - 1 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.n.. 2021. 4. 14.
백준 2869번 달팽이는 올라가고 싶다 자바 java 문제 풀이 정상에 올라가면 미끄러지지 않는다는 조건 때문에 높이에서 B만큼을 빼고 계산을 한다 (V - B) / (A - B) 소수점이 있다면 올림 처리를 하여 해결하였다 처음에는 V / (A - B) - 1로 풀면 해결될라나 하고 생각했으나 다른 테스트 케이스에서 틀린다 4 1 10 → 3 4 1 11 → 4 100 99 1000000000 → 999999901 마지막 날짜에서 정상에 도달하는 조건 때문에 while로 처리해야 하나?라는 생각도 했었다 (시간제한이 0.15 초라 while문으로는 통과하기 힘들 것이다) 검색을 해보니 마지막 정상 도달하면 미끄러지는 값을 계산할 필요가 없어지므로 V - B를 하여 계산을 하면 된다는 것을 찾아서 해결하였다 코드 import java.util.Scanner.. 2021. 4. 13.
백준 1065번 한수 자바 java 문제 풀이 정수의 각 자리 수가 등차수열로 이루어지면 한수 예) 1 ~ 99, 111 (0), 123 (1), 135 (2), 147 (3), 159 (4), 210 (1).... 1 ~ 99 까지는 한수를 더해주고 세 자리 숫자부터 함수를 만들어서 처리를 함 첫째 자릿수와 둘째 자릿수를 계산을 해서 증감 값을 찾아내고 그다음 셋째 자리 수와 둘째 자리 수를 비교해서 한수 값을 찾아내는 것으로 해결을 하였다 코드 import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); //한자리, 두자리 수는 모두 한수.. 2021. 4. 12.
백준 4673번 셀프 넘버 자바 java 문제 풀이 10,000 보다 작은 셀프 넘버를 구하기 위해서 10000번 정도 for문을 돌리면서 길이가 10000인 배열을 선언하고 생성자를 구하는 함수를 만들어 해당 값을 리턴해서 해당 배열에 인덱스에 집어넣고 카운트를 높이고 카운트 0만 출력(셀프 넘버)을 하여 해결하였다 코드 public class Main { public static void main(String[] args) { int[] selfNumbers = new int[10000]; for (int i = 1; i < 10000; i++) { selfNumbers[generator(i)]++; } for (int i = 1; i < selfNumbers.length; i++) { if (selfNumbers[i] == 0) { Sys.. 2021. 4. 11.
백준 15552번 빠른 A+B 자바 java 문제 풀이 시간제한이 있어서 주로 사용하던 Scanner와 출력하는 방식으로는 시간 초과가 돼버려서 입력 클래스인 scanner 대신 BufferedReader를 사용하고 String 문자열을 만들 때 바로 출력하는 대신에 StringBuilder로 한꺼번에 문자열을 만들고 마지막에 BufferedWriter 클래스를 이용해서 출력하는 것으로 해결을 하였다 코드 import java.io.*; import java.util.StringTokenizer; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(S.. 2021. 4. 11.
반응형