package com.backjun.algorithm;

import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int hambergLowPrice=0;
		int beverageLowPrice=0;

		for (int i=0; i<5; i++){
			int price = Integer.parseInt(br.readLine());
			if(i==0){
				hambergLowPrice = price;
			} else if (i<3) {
				hambergLowPrice = price < hambergLowPrice ? price : hambergLowPrice;
			} else if (i==3) {
				beverageLowPrice = price;
			} else if (i<5) {
				beverageLowPrice = price < beverageLowPrice ? price : beverageLowPrice;
			}

		}
		System.out.println(hambergLowPrice + beverageLowPrice - 50);
	}
}

Math.min을 사용하면 아래처럼.

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

public class Main {
	static int min(int a, int b){
		return a<b ? a:b;
	}
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		System.out.print(min(Integer.parseInt(br.readLine()), min(Integer.parseInt(br.readLine()),
				Integer.parseInt(br.readLine()))) + min(Integer.parseInt(br.readLine()),
				Integer.parseInt(br.readLine())) - 50);
	}
}

min을 함수로 정의해서 사용.

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

public class Main {
	static int min(int a, int b){
		return a<b ? a:b;
	}
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		System.out.print(min(Integer.parseInt(br.readLine()), min(Integer.parseInt(br.readLine()),
				Integer.parseInt(br.readLine()))) + min(Integer.parseInt(br.readLine()),
				Integer.parseInt(br.readLine())) - 50);
	}
}

'알고리즘 > acmicpc.net' 카테고리의 다른 글

#10039  (0) 2020.07.13
1110  (0) 2020.07.10
10951&10952  (0) 2020.07.10
10871  (0) 2020.07.08
2439  (0) 2020.07.08
package com.backjun.algorithm;

import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
//		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		ArrayList<Integer> arr = new ArrayList();
		String line;
		int cnt =0;
		while (true){
			line = br.readLine();
			int score = Integer.parseInt(line);
			if(score >= 40){
				arr.add(score);
			} else {
				arr.add(40);
			}
			cnt++;
			if(cnt==5){
				break;
			}
		}
		int result = (int)arr.stream().mapToInt(Integer::intValue).average().getAsDouble();
		System.out.println(result);

//		bw.flush();
//		bw.close();

	}
}

'알고리즘 > acmicpc.net' 카테고리의 다른 글

#5543  (0) 2020.07.13
1110  (0) 2020.07.10
10951&10952  (0) 2020.07.10
10871  (0) 2020.07.08
2439  (0) 2020.07.08
import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		String line1 = br.readLine();
		String line2 = br.readLine();
		int N = Integer.parseInt(line1.split(" ")[0]);
		int X = Integer.parseInt(line1.split(" ")[1]);
		String[] arr = line2.split(" ");
		int target;
		for (int i=0; i<N; i++){
			target = Integer.parseInt(arr[i]);
			if (target < X){
				bw.write(target + " ");
			}
		}
		
		bw.flush();//남아있는 데이터를 모두 출력시킴
		bw.close();//스트림을 닫음
	}
}

'알고리즘 > acmicpc.net' 카테고리의 다른 글

1110  (0) 2020.07.10
10951&10952  (0) 2020.07.10
2439  (0) 2020.07.08
11022  (0) 2020.07.08
11021.  (0) 2020.07.08
import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int cnt = Integer.parseInt(br.readLine());
		for (int i=1; i<=cnt ; i++){
			bw.write(i +"\n");
		}

		bw.flush();//남아있는 데이터를 모두 출력시킴
		bw.close();//스트림을 닫음
	}
}

 

1~CNT까지 찍기.

 

import java.io.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int cnt = Integer.parseInt(br.readLine());
		for (int i=cnt; i>0 ; i--){
			bw.write(i +"\n");
		}

		bw.flush();//남아있는 데이터를 모두 출력시킴
		bw.close();//스트림을 닫음
	}
}

역순 출력

'알고리즘 > acmicpc.net' 카테고리의 다른 글

11022  (0) 2020.07.08
11021.  (0) 2020.07.08
15552. Fast A+B  (0) 2020.07.08
8393. 하압  (0) 2020.07.07
acmicpc.net => 백준의 알고리즘 사이트.  (0) 2020.07.07
import java.io.*;
import java.util.*;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int cnt;
		cnt = Integer.parseInt(br.readLine());
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		for (int i=0; i<cnt ; i++){
			String line = br.readLine();
			StringTokenizer st = new StringTokenizer(line, " ");
			bw.write(Integer.parseInt(st.nextToken())+Integer.parseInt(st.nextToken())+"\n");
		}

		bw.flush();//남아있는 데이터를 모두 출력시킴
		bw.close();//스트림을 닫음
	}
}

Scanner와 Println 등은 데이터가 들어오는 족족 바로바로 입출력이 일어나서 오래걸린다.

한번에 모아뒀다 입출력 하는 BufferedReader와 BufferedWriter를 사용하는 것이 이번 문제의 요지. (참고)

위의 코드는 내 정답 : 824ms

 

아래는 다른 사람의 코드 : 776ms

로직은 비슷하나 나는 아래 코드에서는 int a, b 라는 변수를 사용했다.

내 코드에서는 a와 b에 해당하는 변수를 생성하고 그곳에 값을 담는데

아래 코드에서는 이미 변수가 생성된곳에 값만 담아서 사용하면 되니깐 더 빠른것 같다.

(정확한 이유를 아시는 분은 댓글좀 부탁드립니다.)

 

import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int count = Integer.parseInt(br.readLine().trim());
        int a, b;
        for(int i=0; i<count; i++) {
            String str = br.readLine();
            StringTokenizer st = new StringTokenizer(str," ");
            a = Integer.parseInt(st.nextToken());
            b = Integer.parseInt(st.nextToken());
            bw.write((a+b) + "\n");
        }
        bw.flush();
        bw.close();        
    }
}

'알고리즘 > acmicpc.net' 카테고리의 다른 글

11022  (0) 2020.07.08
11021.  (0) 2020.07.08
2741. N찍 & 2742.N반대로찍  (0) 2020.07.08
8393. 하압  (0) 2020.07.07
acmicpc.net => 백준의 알고리즘 사이트.  (0) 2020.07.07
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		System.out.println(n*(n+1)/2);

	}
}

for문 무시... 그냥 어릴적 배운 수학 공식 사용.

1~n까지의 합은 n*(n+1)/2;

 

[주의]

곱셉 나눗셈 교환법칙으로 인해

n*(n+1)/2 = (n/2)*(n+1)

 

처음에 후자로 코딩했다가 값이 다르게 나왔다.

(사유 : n이 int형이므로 n/2하다가 반내림 됨)


구지 후자를 쓰고자 한다면

1) int로 입력 받고

2) double 형변환 해서 계산

3) 다시 int로 변환해서 출력

'알고리즘 > acmicpc.net' 카테고리의 다른 글

11022  (0) 2020.07.08
11021.  (0) 2020.07.08
2741. N찍 & 2742.N반대로찍  (0) 2020.07.08
15552. Fast A+B  (0) 2020.07.08
acmicpc.net => 백준의 알고리즘 사이트.  (0) 2020.07.07

+ Recent posts