PS(Problem Solving)/BOJ244 [백준/BOJ] 2442번: 별 찍기 - 5 https://www.acmicpc.net/problem/2442 2442번: 별 찍기 - 5 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력1 5 예제 출력1 * *** ***** ******* ********* 해설 예제 출력을 보자. 행 = i, 열 = j, 입력 = n이라 하자. 0행에서는 4열에만 *이 있고, 1행.. PS(Problem Solving)/BOJ 2021. 11. 17. [백준/BOJ] 2441번: 별 찍기 - 4 https://www.acmicpc.net/problem/2441 2441번: 별 찍기 - 4 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 문제 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 해설 예제 출력을 봐보자. 행을 i라 하고, 열을 j라 할 때 j = i일 때 *이 출력되는 것을 알 수 있다. 소스 코드.. PS(Problem Solving)/BOJ 2021. 11. 16. [백준/BOJ] 2440번: 별 찍기 - 3 https://www.acmicpc.net/problem/2440 2440번: 별 찍기 - 3 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 www.acmicpc.net 문제 첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 해설 우선 규칙을 찾아보도록 하자. 5를 입력했을 때 0행에는 5개, 1행에는 4개, 2행에는 3개 . . . 4행에는 1개의 별이 찍혀있다. 따라서 n-i(행)-1보다 j(열)의 값이 작거나 같을 때만 별을 찍으면 된다. ex) n = 5 0행 -> 5 - 0 - 1 = 4 ->.. PS(Problem Solving)/BOJ 2021. 11. 16. [백준/BOJ] 2355번: 시그마 https://www.acmicpc.net/problem/2355 2355번: 시그마 첫째 줄에 두 정수 A, B가 주어진다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647) www.acmicpc.net 문제 두 정수 A와 B가 주어졌을 때, 두 정수 사이에 있는 수의 합을 구하는 프로그램을 작성하시오. 사이에 있는 수들은 A와 B도 포함한다. 입력 첫째 줄에 두 정수 A, B가 주어진다. (-2,147,483,648 ≤ A, B ≤ 2,147,483,647) 출력 첫째 줄에 답을 출력한다. (-2,147,483,648 ≤ 답 ≤ 2,147,483,647) 해설 처음 문제를 봤을 때는 반복문을 통해 A부터 B까지의 수를 다 더하면 되겠구나 하고 시도를 해보았다. 이 시도는 시간 초.. PS(Problem Solving)/BOJ 2021. 11. 15. [백준/BOJ] 2439번: 별 찍기 - 2 https://www.acmicpc.net/problem/2439 2439번: 별 찍기 - 2 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. www.acmicpc.net 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 해설 우선 1부터 n행까지의 출력을 위해 반목문을 만든다. 이제 각 행에 별이 찍히는 위치를 보도록 하자. 시작점을 0으로 보면 1행에는 n-1번째 자리에 별이 찍혔고, 2행은 n-2, n-1번째 잘이 별이 찍혀있고, 3행은 n-3, n-2, n-1에 찍혀있다. 여기까지 봤으면 규칙을 눈치.. PS(Problem Solving)/BOJ 2021. 11. 10. [백준/BOJ] 2061번: 좋은 암호 https://www.acmicpc.net/problem/2061 2061번: 좋은 암호 암호화 방식 중에는 소수를 이용하는 것들이 많다. 보통은 매우 큰 두 개의 소수를 선택하고, 두 소수를 곱한 값을 암호화에서의 키로 사용하고는 한다. 이러한 방법이 좋은 이유는 일반적으로 www.acmicpc.net 문제 암호화 방식 중에는 소수를 이용하는 것들이 많다. 보통은 매우 큰 두 개의 소수를 선택하고, 두 소수를 곱한 값을 암호화에서의 키로 사용하고는 한다. 이러한 방법이 좋은 이유는 일반적으로 매우 큰 수를 소인수분해하는 것이 어렵기 때문이다. 소수를 택할 때 큰 수를 택하면, 이 둘을 곱해서 얻어지는 키 값도 커지게 된다. 하지만 그 반대는 성립하지 않을 수도 있다. 즉, 키 값이 매우 큰 경우에도 이.. PS(Problem Solving)/BOJ 2021. 11. 9. [백준/BOJ] 16428번: A/B - 3 https://www.acmicpc.net/problem/16428 16428번: A/B - 3 첫째 줄에 A와 B가 주어진다. (-1010000 ≤ A, B ≤ 1010000, B ≠ 0) www.acmicpc.net 문제 두 정수 A와 B를 입력받은 다음, A/B의 몫과 나머지를 출력하는 프로그램을 작성하시오. 어떤 정수 q와 r에 대해 A = qB + r (0 ≤ r < |B|)로 나타낼 수 있을 때, q를 몫, r을 나머지라고 한다. 해설 처음에 시도했을 때는 그저 BigInteger를 사용하여 두 값의 몫과 나머지를 구하면 될 줄 알았다. 하지만 이렇게 시도했을 때 모든 서브태스크를 만족시키지 못해 만점을 받을 수 없었다. 이유를 찾아보니 음수가 있으면 나눗셈을 하는데 몫과 나머지가 다르게 나오.. PS(Problem Solving)/BOJ 2021. 11. 9. [백준/BOJ] 2438번: 별 찍기 - 1 https://www.acmicpc.net/problem/2438 2438번: 별 찍기 - 1 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 www.acmicpc.net 문제 해설 n을 입력하여 1번째 줄엔 1개 2번째 줄엔 2개 n번째 줄엔 n개의 별을 찍는 문제이다. 이중 for문을 사용하면 쉽게 풀 수 있다. 우선 0부터 n-1까지 반복문을 만든다. 이 안에 0부터 i까지의 루프를 가진 반복문을 또 만들어 별을 찍게 하고 줄바꿈을 해주면 된다. 소스 코드 fun main(){ val n = readLine()!!.toInt() for(i in 0 until n){ for(j in 0 .. i){ print("*") } println() } } PS(Problem Solving)/BOJ 2021. 11. 8. [백준/BOJ] 1009번: 분산처리 https://www.acmicpc.net/problem/1009 1009번: 분산처리 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 정수 a와 b가 주어진다. (1 ≤ a < 100, 1 ≤ b < 1,000,000) www.acmicpc.net 문제 해설 ab개의 데이터가 있고 10개의 컴퓨터가 있다고 한다. 11번째 데이터는 1번 12번 데이터는 2번 순으로 처리를 한다. 따라서 ab을 10으로 나누면 원하는 값이 나올 것이다. 하지만 무작정 제곱을 하다보면 자료형의 범위를 초과하는 경우가 생겨 성공 처리가 되지 않는다. 이를 해결하기 위해 temp라는 변수를 설정하여 1의 값을 저장하고, 제곱의 수만큼 반복문을 돌리며 temp * a % 10을.. PS(Problem Solving)/BOJ 2021. 11. 8. [백준/BOJ] 1712번: 손익분기점 https://www.acmicpc.net/problem/1712 1712번: 손익분기점 월드전자는 노트북을 제조하고 판매하는 회사이다. 노트북 판매 대수에 상관없이 매년 임대료, 재산세, 보험료, 급여 등 A만원의 고정 비용이 들며, 한 대의 노트북을 생산하는 데에는 재료비와 www.acmicpc.net 문제 해설 이 문제의 답은 총 판매 비용이 고정 비용 + 가변 비용보다 커지기 위해선 최소 몇 개를 팔아야 하는가이다. 고정 비용을 staticCost, 가변 비용을 productionCost, 노트북의 가격을 notebookPrice라고 하고, 판매 개수를 n이라 할 때 notebookPrice * n > staticCost + productionCost * n이 되는 n값을 구하는 것이다. 이를 반.. PS(Problem Solving)/BOJ 2021. 11. 5. [백준/BOJ] 1271번: 엄청난 부자2 https://www.acmicpc.net/problem/1271 1271번: 엄청난 부자2 첫째 줄에는 최백준 조교가 가진 돈 n과 돈을 받으러 온 생명체의 수 m이 주어진다. (1 ≤ m ≤ n ≤ 101000, m과 n은 10진수 정수) www.acmicpc.net 문제 해설 문제만 보면 최백준 조교가 가지고 있는 돈을 생명체의 수로 나누면 된다. 하지만 입력에서의 범위를 보면 최대 범위가 101000이다. 따라서 입력받는 자료형을 int와 long으로 하면 제출 결과 "틀렸습니다."를 받을 것이다. 자바와 코틀린에는 BigInteger가 있으므로 이를 사용하여 코드를 작성하면 간단히 답을 구할 수 있다. 소스 코드 import java.math.BigInteger fun main() { val i.. PS(Problem Solving)/BOJ 2021. 11. 5. [백준/BOJ] 10757번: 큰 수 A+B https://www.acmicpc.net/problem/10757 10757번: 큰 수 A+B 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. www.acmicpc.net 문제 해설 이 문제는 단순한 두 수의 덧셈 문제이지만 두 수의 최대 범위가 1010000이다. Int의 범위는 -231~231-1이고, long의 범위는 -263~263-1이다. 따라서 정수형 자료형인 int, long을 사용하면 에러가 날 것이다. 따라서 문자열 형태로 이루어져 숫자의 범위가 무한한 BigInteger를 사용해야 한다. 코틀린에서는 자바의 BigInteger를 가져와 사용할 수 있다. 소스 코드 import java.math.BigInteger fun main() { val input =.. PS(Problem Solving)/BOJ 2021. 11. 4. 이전 1 ··· 17 18 19 20 21 다음 728x90