백준

· Algorithm
백준 1181 단어정렬문제알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오.길이가 짧은 것부터길이가 같으면 사전 순으로단, 중복된 단어는 하나만 남기고 제거해야 한다.입력첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다.시간 제한 및 메모리 제한2초, 256MB문제 해결 키Arrays.sort(arr, new Comparator(){ @Override public int compare(String o1, String o2){ return 0; })코드package main..
· Algorithm
1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 해당 문제는 N * M 행렬이 주어졌을 때, 8 * 8 정사각형으로 잘랐을 때, 자른 정사각형들 영역 중에, 가장 최소로 칸을 색칠하는 값을 구해야 하는 문제입니다. row : N / col : M 으로 했을 때 아래와 같이 체스판을 그릴 수가 있습니다. board[N][M] 8 * 8 의 정사각형으로 잘랐을 때, 나올 수 있는 정사각형 모양의 체스판 중 가장 다시 칠해야 하는 최솟값을 찾으면 됩니다. [0][0] 자리에 B 또는 W 색이 올 수 있기 때..
· Algorithm
27866번: 문자와 문자열 첫째 줄에 영어 소문자와 대문자로만 이루어진 단어 $S$가 주어진다. 단어의 길이는 최대 $1\,000$이다. 둘째 줄에 정수 $i$가 주어진다. ($1 \le i \le \left|S\right|$) www.acmicpc.net 문제 단어 S와 정수 i가 주어졌을 때, S의 i번째 글자를 출력하는 프로그램을 작성하시오. 저는 문자열 함수 인 charAt()를 사용했습니다. package main; import java.util.*; import java.io.*; // The main method must be in a class named "Main". class Main27866 { public static void main(String[] args) throws Exc..
· Algorithm
10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 이 문제는 높이 H, 폭 W으로 구성된 호텔에 N 번째 사람이 가장 가깝게 들어갈 호실을 구하는 문제입니다. 이 문제의 핵심은 엘레베이터를 타고 층수로 올라가는 거리를 따지지 않는다는 점입니다. 문제에서 102호 보다 2101호를 선호한다는 것에 힌트가 있습니다. 저는 해당 문제를 4가지 경우의 수를 세우고 문제에 접근하였습니다. 1. 높이 H가 N 명 보다 작은 경우 2. 높이 H가 N 명 보다 작고, N 이 H와 나누어 떨어지는 경우 3. 높이 H..
· Algorithm
본 포스팅은 “Do it! 알고리즘 코딩 테스트 자바 편” 의 학습용도입니다. 문제분석하기 질의의 개수가 10만이므로, 질의마다 합을 구하면 안되고, 구간 합 배열을 이용해야 한다. 구간 합 배열이 1차원에서 2차원으로 확장된 것으로 생각하여 구간 합 배열을 어떻게 구성할지 고민하는 것이 이 문제의 핵심이다. 2차원 구간 합 배열은 다음과 같이 정의할 수 있다. 2차원 구간 합 배열 D[X][Y]의 정의 D[X][Y] = 원본 배열의 (0,0) 부터 (X,Y)까지의 사각형 영역 안에 있는 수의 합 1차원 배열 구간 합이 궁금하다면? 백준[11659] - 구간 합 구하기 4 ✏️ 문제분석 수의 개수와 합을 구해야 하는 횟수는 최대 10만 구간마다 합을 매번 계산하면 0.5초 안에 모든 구간 합계산을 끝낼 ..
· Kotlin
내가 푼 답 import java.io.BufferedReader import java.io.BufferedWriter import java.io.InputStreamReader import java.io.OutputStreamWriter import java.util.* fun main(){ val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStreamWriter(System.out)) var st:StringTokenizer var rep = Integer.parseInt(br.readLine()) var sum:Int = 0 for( i in 0..rep - 1 ){ st = StringToken..
· Kotlin
내가 풀었던 답 import java.util.Scanner fun main(){ val sc : Scanner = Scanner(System.`in`) var n = sc.nextInt() var sum:Int = 0 for( i in 1..n ){ sum += i } println(sum) } 핵심 : 반복문안에 값을 저장할 수 있는 변수를 계속 갱신시켜줍니다. 문제링크 : www.acmicpc.net/problem/8393 8393번: 합 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오. www.acmicpc.net
· Kotlin
내가 풀었던 답 import java.util.Scanner fun main(){ val sc : Scanner = Scanner(System.`in`) var rep = sc.nextInt() for( i in 1..rep ){ var a = sc.nextInt() var b = sc.nextInt() println( a + b ) } } 이 문제의 핵심은 반복문 안에 입력을 받는 것입니다. 문제 링크 : www.acmicpc.net/problem/10950 10950번: A+B - 3 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net
· Kotlin
내가 풀었던 답 import java.util.Scanner fun main(){ val sc : Scanner = Scanner(System.`in`) var a = sc.nextInt() for( i in 1..9 ){ println("" + a + " * " + i + " = " + i * a) } } 반복문을 활용한다면 쉽게 풀 수 있었던 문제 문제 링크 : www.acmicpc.net/problem/2739 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net
· Kotlin
내가 풀었던 답 import java.util.Scanner fun main(){ val sc : Scanner = Scanner(System.`in`) var h = sc.nextInt() var m = sc.nextInt() if( m - 45 < 0 ){ //분침이 45분보다 작을 때 if( h
runnnerDevHong
'백준' 태그의 글 목록