본문 바로가기

알고리즘89

4153번 문제 : 직각삼각형 4153번: 직각삼각형 (acmicpc.net) 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net 생각보다 쉬워보인다 35분 걸려서 풀었따 ! package algorithm; import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int arr[] = new int[.. 2023. 3. 10.
2292번 문제 : 벌집 2292번: 벌집 (acmicpc.net) 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 나는 너무 어려웠다 분해합처럼 숫자들을 다 쪼개서 그 수가 되는 값들을 (근데 그 가각의 숫자들의 증가폭은 6) 구하는 줄 알았다. 풀이를 좀 찾아봤는데 첫 번째 칸 : 1개 칸의 최댓값 : 1 두 번째 칸 : 6개 칸의 최댓값 : (1+6) =7 세 번째 칸 : 12개 칸의 최댓값 : (1+6+12) = 19 네 번째 칸 : 18개 .. 이런식으로 칸의 갯수가 6의 배수로 증가함 구해야하는 값인 몇 개의 칸을 짚고가는지 cou.. 2023. 3. 8.
2231번 문제 : 분해합 2231번: 분해합 (acmicpc.net) 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 알고리즘 생각 자연수 N이 주어졌을 때 N의 가장 작은 생성자 구하기 ex) 216이 주어졌다면 생성자는 198 198+1+9+8 = 216 구해야되는 숫자 x, 그 숫자의 각 자릿수를 더해서 N이 나와야함 num을 조건으로 for문 돌려서 i를 증가시키면서 조건문에 값과 각 자릿수의 합이 num인 거 찾으면 끝나 for(int i=0;i 일단 문자로 받음 ! int numlength = .. 2023. 3. 7.
11651번 문제 : 좌표정렬 2 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.Comparator; import java.util.StringTokenizer; class MainApp{ public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int num = Integer.parseInt(br.readLine()); int co[][] = new int[num].. 2023. 3. 6.
11650번 문제 : 좌표 정렬하기 11650번: 좌표 정렬하기 (acmicpc.net) 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 방금 익혔던 Arrays.sort랑 Comparator사용하면 될 듯 !!! 추가로 알아야할 것 다량의 데이터를 받을 때는 split아니면 StringTokenizer 사용해야한다. - split은 입력 받는 동시에 별다른 처리 없이 배열로 데이터를 받아올 수 있다. - StringTokenizer의 경우 토큰화 된 문자열을 다시 처리 StringTokeni.. 2023. 3. 6.
백준 깃허브에 commit 돼있는 거 local로 받아오기 보호되어 있는 글 입니다. 2023. 2. 28.
백준 알고리즘 1181번 문제 : 단어정렬 1181번: 단어 정렬 (acmicpc.net) 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 구상 : - scanner.nextInt()로 몇 개의 단어가 입력될지를 변수에 저장해서 이걸로 for 반복문 돌림 - for 반복문 안에서 입력받은 단어들을 저장 ( 저장할 타입은? String . 어디다 저장할까? ArrayList - 조건 1. 각 요소들의 크기를 비교해서 길이가 짧은 것 부터 다시 새로운 공간에 저장 조건 2 : 길이가 같으면 charAt ? 정도 사용해서 문자열을 문자로 바꾸고 .. 2023. 2. 25.
12월에 백준하면서 쓴 코딩일지 보호되어 있는 글 입니다. 2023. 2. 23.
728x90