백준

· 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
· Kotlin
내가 풀었던 답 import java.util.Scanner fun main(){ val sc : Scanner = Scanner(System.`in`) var x = sc.nextInt() var y = sc.nextInt() if(x > 0){ //1 or 4 if(y > 0){ //++ 1사분면 println("1") }else//+- 4사분면 println("4") }else if(x 0 ){ //-+ 2사분면 println("2") }else//-- 3사분면 println("3") }else{ println("y절편") } } 문제 링크 : www.acmicpc.net/problem/14681 14681번: 사분면 고르기 점 (x, y)의 사분면 번호(1, 2, 3, 4..
runnnerDevHong
'백준' 태그의 글 목록