Skip to content

Yeji/backjun #28

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Apr 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/main/java/sgyj/backjun/README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# 백준 알고리즘 문제풀이


## 문제 업로드 기준

### [solved.ac](https://solved.ac/en/class) 사이트에 표기 된 class 별로 문제 풀어보기
### class외의 문제를 풀었을 경우에는 etc 패키지에 따로 분류하기

### class외의 문제를 풀었을 경우에는 etc 패키지에 따로 분류하기
32 changes: 32 additions & 0 deletions src/main/java/sgyj/backjun/yeji/class1p/Main10818.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package sgyj.backjun.yeji.class1p;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

// 최소, 최대
public class Main10818 {

public static void main ( String[] args ) {
try(InputStreamReader in = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader( in );){

int n = Integer.parseInt( br.readLine() );
int min = Integer.MAX_VALUE;
int max = Integer.MIN_VALUE;
int[] s = Arrays.stream( br.readLine().split( " " ) ).mapToInt( Integer::parseInt ).toArray();

for(int r : s){
min = Math.min( r, min );
max = Math.max( r,max );
}

System.out.println(min + " " + max);

}catch ( IOException ex ){
ex.printStackTrace();
}
}
}
22 changes: 22 additions & 0 deletions src/main/java/sgyj/backjun/yeji/class1p/Main10951.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package sgyj.backjun.yeji.class1p;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

// 아스키코드
public class Main10951 {

public static void main ( String[] args ) {
try( InputStreamReader in = new InputStreamReader( System.in );
BufferedReader br = new BufferedReader( in );){

System.out.println(br.read());

}catch ( IOException ex ){
ex.printStackTrace();
}

}
}
27 changes: 27 additions & 0 deletions src/main/java/sgyj/backjun/yeji/class1p/Main10952.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package sgyj.backjun.yeji.class1p;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

// A+B - 5
public class Main10952 {

public static void main ( String[] args ) {
try( InputStreamReader inputStreamReader = new InputStreamReader( System.in );
BufferedReader br = new BufferedReader( inputStreamReader );){
StringBuilder answer = new StringBuilder();
String line;
while ( (line = br.readLine()) != null && !line.isBlank() ){
int[] s = Arrays.stream(line.split( " " ) ).mapToInt( Integer::parseInt ).toArray();
if(s[0]+s[1] != 0){
answer.append( s[0]+s[1] ).append( "\n" );
}
}
System.out.println(answer);
}catch ( IOException ex ){
ex.printStackTrace();
}
}
}
24 changes: 24 additions & 0 deletions src/main/java/sgyj/backjun/yeji/class1p/Main11720.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package sgyj.backjun.yeji.class1p;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class Main11720 {

public static void main ( String[] args ) {
try(InputStreamReader in = new InputStreamReader( System.in );
BufferedReader br = new BufferedReader( in );){

br.readLine();
int result = Arrays.stream( br.readLine().split( "" ) ).mapToInt( Integer::parseInt ).sum();
System.out.println(result);

}catch ( IOException ex ){
ex.printStackTrace();
}
}
}
46 changes: 46 additions & 0 deletions src/main/java/sgyj/backjun/yeji/class1p/Main8958.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package sgyj.backjun.yeji.class1p;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// OX퀴즈
public class Main8958 {

public static void main ( String[] args ) {
try(InputStreamReader in = new InputStreamReader( System.in);
BufferedReader br = new BufferedReader( in );){

int n = Integer.parseInt(br.readLine());
int[] answer = new int[n];

for(int i=0; i<n; i++){
answer[i] = solution(br.readLine().split( "" ));
}

for ( int a : answer ){
System.out.println(a);
}

}catch ( IOException ex ){
ex.printStackTrace();
}
}

private static int solution(String[] input){
int result = 0;

int n = 1;
for(String in : input){
if("O".equals( in )){
result += n;
n++;
}else{
n = 1;
}
}

return result;
}

}
41 changes: 41 additions & 0 deletions src/main/java/sgyj/backjun/yeji/etc/Main1182.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package sgyj.backjun.yeji.etc;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

// 부분수열의 합
public class Main1182 {

private static int[] data;
private static int target;
private static int answer;
private static int N;

public static void main ( String[] args ) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in) );
int[] input = Arrays.stream(br.readLine().split( " " )).mapToInt( Integer::parseInt ).toArray();
data = Arrays.stream( br.readLine().split( " " ) ).mapToInt( Integer::parseInt ).toArray();
target = input[1];
N = input[0];

dfs(0,0);

System.out.println(target == 0 ? answer - 1 : answer);
}

private static void dfs(int dep, int sum) {
if (dep == N) {
if (sum == target)
answer++;
return;
}

dfs(dep + 1, sum + data[dep]);
dfs(dep + 1, sum);
}



}
48 changes: 48 additions & 0 deletions src/main/java/sgyj/backjun/yeji/etc/Main14719.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package sgyj.backjun.yeji.etc;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

// 빗물
public class Main14719 {

static int[] map;

static int ret, left , right;

public static void main ( String[] args ) throws IOException {
BufferedReader br = new BufferedReader( new InputStreamReader( System.in));
StringTokenizer st = new StringTokenizer( br.readLine());
int H = Integer.parseInt(st.nextToken());
int W = Integer.parseInt(st.nextToken());
map = new int[W];
ret = left = right = 0;

st = new StringTokenizer(br.readLine());
for (int i = 0; i < W; i++) {
int N = Integer.parseInt(st.nextToken());
map[i] = N;
}

// 인덱스마다 모이는 빗물 계산 ( 1번째 기둥과 마지막 기둥의 위치는 제외 )
for (int i = 1; i < W - 1; i++) {
left = right = 0;
// 왼쪽에서 가장 높은 건물의 높이
for (int j = 0; j < i; j++) {
left = Math.max(map[j], left);
}
// 오른쪽에서 가장 높은 건물의 높이
for (int j = i + 1; j < W; j++) {
right = Math.max(map[j], right);
}
// 더 낮은 건물을 기준으로 현재 인덱스에 모이는 빗물
if (map[i] < left && map[i] < right) {
ret += Math.min(left, right) - map[i];
}
}
System.out.println(ret);

}
}
57 changes: 57 additions & 0 deletions src/main/java/sgyj/backjun/yeji/etc/Main15649.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package sgyj.backjun.yeji.etc;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;


// N과 M (1)
public class Main15649 {
// N : 1 부터 N까지의 수
// M : 조합의 갯수
private static boolean[] visited;
private static int[] data;
private static int N,M;

public static void solution(){
for(int i=1; i<=N; i++){
visited[i] = true;
data[0] = i;
dfs(1);
data[0] = 0;
visited[i] = false;
}
}

public static void dfs( int L){
if(L == M){
for(int i=0; i<data.length; i++){
if(data[i] != 0){
System.out.print(data[i] + " ");
}
}
System.out.println();
}else{
for(int j=1; j<=N; j++){
if(!visited[j] ){
visited[j] = true;
data[L] = j;
dfs(L+1);
data[L] = 0;
visited[j] = false;
}
}
}
}

public static void main ( String[] args ) throws IOException {
BufferedReader br = new BufferedReader( new InputStreamReader( System.in ) );
String[] s = br.readLine().split( " " );
N = Integer.parseInt( s[0] );
M = Integer.parseInt( s[1] );
visited = new boolean[N+1];
data = new int[N+1];
solution();
}

}
47 changes: 47 additions & 0 deletions src/main/java/sgyj/backjun/yeji/etc/Main15650.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package sgyj.backjun.yeji.etc;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

// N과M (2)
public class Main15650 {

public static int[] arr;
public static int N, M;
public static StringBuilder sb = new StringBuilder();

public static void main(String[] args) throws IOException {

BufferedReader br = new BufferedReader( new InputStreamReader( System.in));
StringTokenizer st = new StringTokenizer( br.readLine());

N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());

arr = new int[M];

dfs(1, 0);
System.out.println(sb);

}

public static void dfs(int at, int depth) {

if (depth == M) {
for (int val : arr) {
sb.append(val).append(' ');
}
sb.append('\n');
return;
}

for (int i = at; i <= N; i++) {

arr[depth] = i;
dfs(i + 1, depth + 1);

}
}
}
Loading