일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 정렬
- 람다식
- System.in
- 접근지시자
- auto.create.topics.enable
- 합병 정렬
- Switch Expressions
- throwable
- 항해99
- github api
- docker
- annotation processor
- 함수형 인터페이스
- 스파르타코딩클럽
- 바운디드 타입
- System.err
- raw 타입
- 자바스터디
- 익명 클래스
- System.out
- junit 5
- 제네릭 와일드 카드
- 로컬 클래스
- yield
- 프리미티브 타입
- Study Halle
- 제네릭 타입
- 상속
- 자바할래
- 브릿지 메소드
Archives
- Today
- Total
코딩하는 털보
21.09.10 TIL 본문
백준 코드 퀴즈
2839번 설탕 배달
5로 나눈 값만큼 for문을 돌면서 최소 봉지 수 찾기
public class Q2839 {
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(reader.readLine());
Set<Integer> resultSet = new TreeSet<>();
for (int i = n/5; i >= 0; i--) {
if ( (n - 5*i) == 0 ) {
resultSet.add(i);
} else if ( (n - 5*i)%3 == 0) {
resultSet.add(i + ((n - 5*i)/3));
}
}
if ( resultSet.isEmpty() ) {
System.out.println(-1);
} else {
System.out.println(resultSet.toArray()[0]);
}
}
}
아래는 ST's LAB에서 참고한 풀이.
https://st-lab.tistory.com/72
나머지 조건별로 나눠서 결과 출력하기.
수행시간은 비슷하지만 이해하기 쉽고 깔끔하다.
public class Q2839 {
static BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
static int result;
public static void main(String[] args) throws IOException {
int n = Integer.parseInt(reader.readLine());
if (n == 4 || n == 7) {
result = -1;
} else if (n % 5 == 0) {
result = n/5;
} else if (n % 5 == 1 || n % 5 == 3) {
result = (n/5) + 1;
} else {
result = (n/5) + 2;
}
System.out.println(result);
}
}
10757번 큰 수 A+B
long 타입 제한을 넘는 크기의 숫자 계산은 java.math.BigInteger 사용하기.
public class Q10757 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String[] tests = reader.readLine().split(" ");
BigInteger big1 = new BigInteger(tests[0]);
BigInteger big2 = new BigInteger(tests[1]);
System.out.println(big1.add(big2));
}
}
1011번 Fly me to the Alpha Centauri
ST's LAB에서 규칙성을 참고하고 코딩
https://st-lab.tistory.com/79
public class Q1011 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int tests = Integer.parseInt(reader.readLine());
int dist;
int max;
int result;
for (int i = 0; i < tests; i++) {
String[] test = reader.readLine().split(" ");
dist = Integer.parseInt(test[1]) - Integer.parseInt(test[0]);
System.out.println("dist:"+ dist);
max = (int) Math.sqrt(dist);
System.out.println("max:"+ max);
result = max*2 - 1;
int pow = (int) Math.pow(max, 2);
if ( dist == pow ) {
System.out.println(result);
} else if ( dist <= pow + max ) {
System.out.println(result+1);
} else {
System.out.println(result+2);
}
}
}
}
10872번 팩토리얼
순회로 풀기
public class Q10872 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
int result = 1;
for (int i = 0; i < n; i++) {
result *= i+1;
}
System.out.println(result);
}
}
재귀로 풀기
public class Q10872 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
System.out.println(recursive(n));
}
public static int recursive(int num) {
if ( num == 0 ) {
return 1;
}
return num*recursive(num-1);
};
}
10870 피보나치
ublic class Q10870 {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(reader.readLine());
System.out.println(recursive(n));
}
private static int recursive(int n) {
if ( n == 0 || n == 1) {
return n;
} else {
return recursive(n - 1) + recursive(n - 2);
}
}
}
Comments