728x90 Algorithm/Beakjoon30 [Java] baekjoon 1920 : 수 찾기 / 이분 탐색 문제 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 해결 이분 탐색 (Binary Search) 정렬돼있는 배열에서 탐색 범위를 반씩 줄여 가며 목푯값을 찾는 탐색 방법이다. 목푯값이 속해있지 않은 부분은 전혀 고려할 필요가 없기 때문에 매 단계에서 검색해야 할 범위를 반으로 줄일 수 있다. ex 1) 75를 탐색하는 경우 fir : 탐색 범위의 첫 인덱스 last : 탐색 범위의 마지막 인덱스.. 2021. 9. 1. [Java] baekjoon 1712 : 손익분기점 / 기본 수학 1 문제 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 해결 손익분기점 : 최초로 총 수입(판매비용)이 총 비용(=고정비용 +가변비용)보다 많아져 이익이 발생하는 지점 고정비용 a, 가변비용 b, 판매비용 c, 판매 수 x라고 가정하면 cx > a + bx 조건식을 가장 먼저 성립하는 지점이 손익분기점이다. cx > a + bx 조건식을 정리하면 x > a / (c - b)이므로 a / (c - b) + 1이 x > a / (c - b) 조건식을 가장.. 2021. 8. 31. [Java] baekjoon 2941 : 크로아티아 알파벳 / 문자열 문제 https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net 해결 1. 여러 개의 문자로 이루어진 크로아티아 알파벳 8개(c=, c-, dz=, d-, lj, nj, s=, z=)를 하나로 인식해야 한다 2. StringIndexOutOfBoundsException 주의 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 .. 2021. 8. 30. [Java] baekjoon 4344 : 평균은 넘겠지 / 1차원 배열 문제 https://www.acmicpc.net/problem/4344 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net 해결 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력해야 하는 문제였다. 학생들의 점수를 배열의 원소로 입력받아 1. for문을 통해 총합을 구한 뒤 2. 평균을 구하고 (총합 / 전체 학생 수) 3. for문을 통해 평균보다 점수가 높은 학생의 수를 구한 뒤 4. 평균을 넘는 학생들의 비율을 구하였다. ((평균보다 점수가 높은 학생의 수 / 전체 학생 수) * 100) printf() 메서드를 이용해 소수점 n번째 자리까지 출력하는 방법 printf.. 2021. 8. 28. [Java] baekjoon 8958 : OX퀴즈 / 1차원 배열 문제 https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 해결 OX퀴즈 결과의 점수를 계산하려면 점수를 매기는 패턴부터 파악해야 한다. ex) OOXXOXXOOO : 1+2+0+0+1+0+0+1+2+3 = 10점 O : 문제를 맞음 X : 문제를 틀림 문제를 연속으로 맞을 시 점수가 1점씩 증가하며 축적된다. 문제를 틀릴 시 점수를 받지 못하고 (0점) 다음에 문제를 연속으로 맞히더라도 다시 1점부터 증가한다. 이중반복문(nes.. 2021. 8. 27. [Java] baekjoon 3052 : 나머지 / 1차원 배열 문제 https://www.acmicpc.net/problem/3052 3052번: 나머지 각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다. www.acmicpc.net 해결 입력받은 10개의 수를 42로 나눈 나머지 중에서 서로 다른 값이 몇 개인지 출력해야 하는 문제였다. 1) 10개의 수와 42로 나눈 나머지 모두 for문을 통해 배열에 저장한 뒤 2) TreeSet 컬렉션을 이용해 나머지 값이 저장된 배열 내 중복 값을 없앴고 3) Iterator 인터페이스를 이용해 중복을 제외한 나머지의 개수를 도출하였다. TreeSet 이진 트리(binary search)를 기반으로 한 Set 컬렉션이다. TreeSet에 객체를 저장.. 2021. 8. 26. 이전 1 2 3 4 5 다음 728x90