수학 205

[백준 21633] Bank Transfer [Python]

풀이 이체할 돈의 액수에 따라 수수료가 얼마인지 계산해주는 문제다. 수수료는 돈의 액수(k)의 1%에 25 tugriks 을 더한 값이다. 단, 최소 100 tugriks 최대 2,000 tugriks라는 점에 유의하자. 소스코드 소스코드 보기 출처 21633번: Bank Transfer Tanya has an account in "Redgotts" bank. The bank has the commission to transfer money to "Bluegotts" bank that her friend Vanya has the account in. Tanya has read her bank rules and learned the following: The commission for the bank tr..

[백준 4375] 1 [Java]

풀이 입력받은 정수 n의 배수 중 1로만 이루어진 배수를 찾아 자릿수를 출력하면 되는 문제다. 간단하게 1부터 시작해서 n으로 나누어 떨어질때까지 숫자 뒤에 1씩 붙여주면 된다. 뒤에 숫자 1을 붙일 때 마다 자릿수를 한 개씩 증가시켜 주자. 소스코드 소스코드 보기 출처 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net

[백준 4344] 평균은 넘겠지 [C]

풀이 N명의 점수를 입력받아 평균을 구한 후, N명의 평균보다 높은 점수를 받은 인원의 비율을 계산하면 되는 문제다. 점수를 입력받으며 합을 구해주고 평균보다 높은 점수를 받는 인원을 카운트해주면 된다. 결과값을 소수점 셋째 자리까지 출력해주면 된다. 소스코드 소스코드 보기 출처 4344번: 평균은 넘겠지 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다. www.acmicpc.net

[백준 21612] Boiling Water [Python]

풀이 물이 끓기 시작하는 온도(B)를 입력받아서, 기압(P)과 이를 통해 알 수 있는 해수면으로부터의 위치를 출력해주면 된다. 소스코드 소스코드 보기 출처 21612번: Boiling Water At sea level, atmospheric pressure is 100 kPa and water begins to boil at 100◦C. As you go above sea level, atmospheric pressure decreases, and water boils at lower temperatures. As you go below sea level, atmospheric pressure increases, and water boils www.acmicpc.net

[백준 21631] Checkers [Python]

풀이 흰/검정 색 체커칩으로 탑을 쌓아서 얼룩말 줄무늬를 만들때 검정색 줄의 최대 갯수를 구하는 문제이다. 검정색 줄의 최대 갯수를 구할 때, 연속된 부분은 한 개로 취급한다는 점을 유의하자. 흰 색(a)이 검정색(b) 이상이라면 b개만큼 최대로 만들 수 있다. 만약 그렇지 않다면 검정색은 겹치는 구간이 생길것이고, 결국 흰색(a) + 1 개만큼의 줄무늬만 만들어진다. 소스코드 소스코드 보기 출처 21631번: Checkers The only line of input contains two integers $a$ and $b$ --- the number of white and black pieces, respectively ($0 \le a, b \le 10^{18}$). www.acmicpc.net

[백준 21335] Another Eruption [Python]

풀이 이전에 풀이한 문제와 동일한 방식으로 풀이할 수 있다. [백준 20352] Circus [Python] 풀이 입력받은 원의 면적을 이용해 원의 둘레를 구해주면 된다. 소스코드 소스코드 보기 출처 20352번: Circus In the modern world, the spotlight has shifted entirely from live shows to televised recordings. Well, not entirel kyr-db.tistory.com 정사각형의 면적을 입력받아 지름을 통해 원의 둘레를 구하자. 소스코드 소스코드 보기 출처 21335번: Another Eruption A volcano has recently erupted in Geldingadalur, Iceland. Fort..

[백준 20529] 가장 가까운 세 사람의 심리적 거리 [Java]

풀이 N개의 중 3개의 MBTI에 대해서 가장 작은 심리적 거리를 구해야 한다. 모든 경우의 수를 전부 탐색하면 N^3 이기에 당연히 시간초과가 발생할 것이다. 때문에 구한 거리가 0인지 확인을 하고, 중간에 loop를 빠져나와야 한다. 비둘기집 원리를 통해 더 줄여보자. MBTI에 대한 심리적 거리의 최선의 경우는 뭘까? bruteforce이지만, 심리적 거리가 0인 경우 더 이상의 탐색이 무의미하기에 중단 해주어 시간초과가 발생하지 않는다. 심리적 거리가 0이라는 조건 이후의 탐색이 무의미하다면, 심리적 거리가 0이 되는 최악의 경우는 무엇일까? 바로 비둘기집 원리에 따른 33명이다. 서로 다른 MBTI를 가진 16명이 2명씩 총 32명 있을 경우 심리적 거리는 0이 될 수 없다. 33명부터 동일한 ..

[백준 18110] solved.ac [Python]

풀이 정렬된 점수들의 절사평균을 구하는 문제이다. 가장 작은 15%의 인원과, 가장 큰 15%의 인원을 제외한 후 나머지 인원에 대해 평균을 구한 후 반올림을 해서 출력해주면 된다. 문제는 단순하지만 Python을 사용하다보니 예상치 못한 복병들이 많았다. 우선 첫 번째로 주어지는 점수들의 개수가 최대 3 x 10^5 이다. 실버 난이도의 문제답지 않게 많은 입력이 주어진다. 빠른 입출력을 해주자. 그 다음으로는 전체 인원에 대한 절사평균이 성립하지 않는 경우다. 즉, 인원이 너무 적어 절사평균을 구하기 위해 제외해야할 인원이 적은 경우이다. 15%에 해당하는 인원의 반올림한 값이 0보다 큰 경우에만 인원을 제외시켜 주자. 다른 하나는 Python의 round()의 작동 방식에 대한 문제다. 일반적으로 ..

[백준 26530] Shipping [Python]

풀이 종류와 갯수, 가격을 입력받아서 총 가격을 출력해주면 되는 문제다. 종류를 기억할 필요는 없으니 갯수와 가격으로 총 가격만 빠르게 구해주어 소수점 둘째자리까지 출력해주자. 소스코드 소스코드 보기 출처 26530번: Shipping The first line will contain a single integer n that indicates the number of data sets that follow. Each data set will start with a single integer x denoting how many items follow. The next x lines consist of a string, and integer, and a floating point numb www.acmic..