백준 온라인 저지 10

[C++] 백준 온라인 저지 2798, 블랙잭

문제 www.acmicpc.net/problem/2798 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는다. 합이 M을 넘지 않는 카드 3장을 찾을 수 있 www.acmicpc.net 설계 브루트포스는 '모든 경우의 수'를 탐색하는 알고리즘이다. 말 그대로 '무식한 힘' 알고리즘이다. 장점으로는 정답을 100% 찾아낼 수 있다는 것이지만, 단점은 당연히 효율이 극단적으로 떨어진다는 것이다. 하지만 브루트포스가 오히려 코드가 간결한 문제들이 몇 개 있다. 이런 문제 같은 경우다. 먼저 변수들을 선언해주고 필요한 정보를 입력해줬다. n과 m은 문제에 있는 ..

카테고리 없음 2020.11.12

[C++] 백준 온라인 저지 10250

문제 www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 설계 생각보다 굉장히 쉬운 문제였다. 당연하게도, for문이나 while문 돌려서 풀면 틀리는 문제다. (시간 초과) 나는 이 문제를 H따로, W따로 구해서 출력할 때 둘이 붙이는 방식으로 풀려고 했다. 먼저 주어지는 H, W, N과 정답으로 사용될 변수인 answerH, answerW를 변수로 둔다고 가정하자. 그렇다면 조건은 크게 2가지로 볼 수있다. 1. 고객이 들어오면, 무조건 H먼저 ..

카테고리 없음 2020.09.24

[C++] 백준 온라인 저지 1193

문제 www.acmicpc.net/problem/1193 1193번: 분수찾기 첫째 줄에 X(1 ≤ X ≤ 10,000,000)가 주어진다. www.acmicpc.net 설계 내가 '수학 1' 문제집에 있는걸 풀면서 느꼈는데 진짜 수학적 사고방식이 중요하다고 느낀다. 왜냐하면 if랑 for문 우다다다 쓰면 풀긴푸는데 효율이 개똥이라.. 그리고 for문 무조건 for(int i = 0; i < n; i++) 이런식으로만 사용하려고 하는 습관좀 없애야겠다. 근데 그게 어렵더라.. 아무튼 각설하고. 이번 문제는 좀 어려웠다 ㅠㅠ 다른사람은 쉽다는데.. 1/1 1/2 1/3 1/4 1/5 1/6 2/1 2/2 2/3 2/4 2/5 2/6 3/1 3/2 3/3 3/4 3/5 3/6 4/1 4/2 4/3 4/4 4..

카테고리 없음 2020.09.15

[C++] 백준 온라인 저지 2292

문제 www.acmicpc.net/problem/2292 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌�� www.acmicpc.net 설계 먼저 이 벌집의 규칙성은 다음과 같다. 이 그림에서, 같은 크기의 방 (같은 색깔로 색칠 된 곳)을 도는 수 즉, 층을 i라고 가정할 때 i 가 1일때는 1 (예외처리) i 가 2일때는 2~7 i 가 3일때는 8~19 .... 의 범위 안에 숫자들을 포함한다. 즉, 1층엔 1, 2층엔 2~7 3층엔 9~36번의 숫자가 포함된다. 그리고 층이 끝나는 지점의 숫자를 기점으로 나열해본다면. 이런 규칙성을 찾을 ..

[C++] 백준 온라인 저지 1712

문제 www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 설계 처음엔 굉장히 쉬운문제라고 생각했다. 그래서 while문을 돌렸다 대부분의 사람들은 아마 보자마자 나처럼 생각했을 것이다. "그냥 1000 + 70*n < 170*n 조건으로 while문 돌리면 풀겠는데?" 라고 생각했는데, 결과는 시간초과였다. 그렇게 무식하게 풀지 말란 소리였음. 그래서 짱구를 열심히 굴려봤다. 그래서 다음과 같은 결론을 도출했다. 물건의 가격이 170이고, 가변비용이 70이므로 고정비..

[JAVA] 백준 온라인저지 9093

문제 코드 Scanner대신 BufferedReader, Writer를 써봤다. 이걸로 쓰는 습관을 들이는게 좋을듯. 먼저 어떻게 풀지 생각해보면.. 개행문자나 공백을 구분해서 역순으로 출력해야한다. 이 경우 스택을 쓰는게 간편하고, 일반적인 배열로도 풀 수 있지만 효율이 안좋으니 그건 패스하도록 하겠다. (그냥 문자열 입력받고, 배열의 크기만큼 for문돌려서 뒷 인덱스부터 출력하면된다. 근데 스택이있잖아?) 암튼 전체 코드다. import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader..