boj 13

[BOJ] 1065 한수 with JAVA

단계별 풀기 : 함수 https://www.acmicpc.net/problem/1065 1065번: 한수 어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 www.acmicpc.net 오늘 풀어본 문제는 한수라는 알고리즘 문제다. 문제는 생각보다 간단하다. 100미만의 모든 수는 한수이다. 따라서 우리가 고려해야하는 것은 100 이상의 숫자이다. 지문에서 나온것 처럼 숫자의 각 자리수가 등차 수열을 이룬다면, 한수라고 할 수 있다. 공차는 음수일수도 양수일수도 있다. 따라서 ) 1 2 3 , 1 3 5 , 1 4 7 ... 점점 커지는 수도 한수이다. 그렇다면..

카테고리 없음 2022.01.01

[BOJ] 4375번 1 - JAVA

https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net 오늘 풀어본 문제는 한달전 풀었다가 실패했던 문제다. 참 다양하게 틀렸는데 시간초과, 런타임 에러(ArrayIndexOutOfBounds, NumberFormat) 등등 오늘도 다시 풀었을때 네번에 실패를 맛봤다.. 이번엔 메모리 초과,, 우선 런타임 에러 NumberFormat같은 경우 숫자 범위를 long타입으로 잡았더니 범위가 초과되서 발생한 에러였다. 이를 해결하기 위해 BigInteger 객체를 사용했다. 그러나 문제는 아래의 코드를 작성했을 때는..

today's alogrithm 2021.06.25

[BOJ] 2470번 두 용액 - JAVA

https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 오늘 두번째로 풀어본 문제는 약 한달전 풀었다가 실패했던 두 용액이라는 문제이다. 규칙은 간단하다. 두 용액 값을 더하여 0에 가장 가까운 두 용액을 찾는 문제다. 호기롭게 도전했던 지난달, 시간초과라는 쓴맛을 맛봤다.. 기본적으로 이분 탐색 방법을 사용하여 문제를 풀었다. 첫 도전때 실패 원인은 쓸데없이 많이 발생하는 연산 문제이다. 그래서 이분탐색 부분을 다시..

today's alogrithm 2021.06.22

[BOJ] 1212번 8진수 2진수 - JAVA

https://www.acmicpc.net/problem/1212 1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 약 한달 전 런타임에러나서 포기하고 다른문제 풀다가 오늘 해결했다. 처음 문제를 풀때 수의 범위를 생각하지 않고 자바에 있는 내장함수를 이용했는데, 8진수를 10진수로 바꾸는 과정에서 수가 너무 커져 런타임에러가 발생했다. 그래서 귀찮아서 안풀고 있었는데 오늘 풀었다. import java.util.*; class Main{ public static void main (String[] args){ Scanner sc = new Scanner(System.in); String n = sc.next(); /..

today's alogrithm 2021.06.22

[BOJ] 12852번 1로 만들기 2 - JAVA

https://www.acmicpc.net/problem/12852 12852번: 1로 만들기 2 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 자연수 N이 주어진다. www.acmicpc.net 이번 문제는 https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 이 문제의 진화된 버전이라고 생각한다. 1로 만들기의 경우 재귀와 dp를 같이 써서 풀었다. 최소 횟수만 나타나면 되는 문제라서 가능했는데 1로만들기 2 같은 경우 어떤 숫자들을 지나갔는지가 함께 출력이 되야해서 고민하는 시간을 가졌다. 처음에는 1로 만들기의 코드를 응용해서 문제를 풀려고 했다...

today's alogrithm 2021.06.21

[BOJ] 2502번 떡 먹는 호랑이 - JAVA

https://www.acmicpc.net/problem/2502 2502번: 떡 먹는 호랑이 첫줄에 첫 날에 준 떡의 개수 A를 출력하고 그 다음 둘째 줄에는 둘째 날에 준 떡의 개수 B를 출력한다. 이 문제에서 주어진 D, K에 대해서는 항상 정수 A, B (1≤A≤B)가 존재한다. www.acmicpc.net 오늘 풀어본 문제는 백준의 떡 먹는 호랑이 기본적으로 다이나믹 프로그래밍 방법으로 푸는데 초깃값을 설정하는 것이 문제다. 나는 while문으로 초깃값을 설정하도록 했다. 처음에는 이분법으로 middle값을 가지고 문제를 풀다가 안되서 그냥 하나씩 값을 줄여줬다. 입력 값의 범위가 크지 않아서 가능한 방법인데,, 만약 범위가 크다면,,, 다른 방법을 찾아봐야 할것 같다. import java.u..

today's alogrithm 2021.06.18

[BOJ] 1254번 팰린드롬 만들기 - JAVA

https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 오늘 풀어본 문제는 실버 티어 1,2 등급에 있는 문제인 팰린드롬 만들기~ 첫 시도에 실패를 맛보고 좀 더 고민한뒤 풀어서 맞췄다. 바보같이 StringBuffer에다가 append를 이상하게 하고있었다. import java.util.*; class Main{ public static void main (String[] args){ Scanner sc = new Scanner(System.in); S..

today's alogrithm 2021.06.17

[BOJ] 이분 탐색 단계 - JAVA

이분 탐색 단계 수 찾기 숫자 카드2 랜선 자르기 나무 자르기 ▷수 찾기 www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net import java.io.*; import java.util.*; public class Main{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new Inp..

today's alogrithm 2021.02.06

[BOJ] 정렬 단계3 - JAVA

정렬 단계 단어 정렬 나이순 정렬 ▷ 단어 정렬 www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 단어를 길이순서로 정렬하고 길이가 같은 때는 사전 순으로 정렬해야 하는데 다른 사람것을 보니까 람다로 푼 사람도 있었다. 사실 hashmap 넣어서 푸는 것보다는 메모리를 아낄 수 있는 방법이여서 그게 좋은데 아직까지 람다를 제대로 공부해본적이 없어서 모르겠다. 람다를 공부하게 되면 그때 다시 한번 풀어봐야지... ▼ 아래는 맨 처음 제출한 코드이다. ..

today's alogrithm 2021.02.03

[BOJ] 정렬 단계2 - JAVA

정렬 단계 수 정렬하기3 통계학 소트인사이트 좌표 정렬하기 좌표 정렬하기2 ▷ 수 정렬하기 3 www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 개인적으로 수정렬하기 3번의 경우는 카운팅 소트를 사용하여 정렬해야 했기 때문에 어려웠다. 아래의 코드는 맨 처음 틀렸던 코드이다. import java.io.*; public class Main{ public static void main(String[] args) throws IOException{ int MAX_NUM = 1000..

today's alogrithm 2021.02.02