전체글397 [백준/BOJ] 2444번: 별 찍기 - 7 https://www.acmicpc.net/problem/2444 2444번: 별 찍기 - 7 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. www.acmicpc.net 문제 예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 2×N-1번째 줄까지 차례대로 별을 출력한다. 예제 입력1 5 예제 출력1 * *** ***** ******* ********* ******* ***** *** * 해설 2442번: 별 찍기 - 5, 2443번: 별 찍기 - 6 두 문제를 풀었다면 충분히 풀 수 있는 문제이다. 우선 4행을 기준으로 0, 1, 2, 3, 4행은 윗 삼각형, 5, 6, 7, 8행은 아래 삼각형으로 구분하였다. 윗 삼.. PS(Problem Solving)/BOJ 2021. 11. 19. [백준/BOJ] 2443번: 별 찍기 - 6 https://www.acmicpc.net/problem/2443 2443번: 별 찍기 - 6 첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. www.acmicpc.net 문제 첫째 줄에는 별 2×N-1개, 둘째 줄에는 별 2×N-3개, ..., N번째 줄에는 별 1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. 예제 입력1 5 예제 출력1 ********* ******* ***** *** * 해설 열(j)가 행(i)보다 값이 작을 시 빈칸이 들어가는 것과 2 * n - i - 1보다 열.. PS(Problem Solving)/BOJ 2021. 11. 18. [백준/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. 코틀린(Kotlin) - 고차 함수 안에서 흐름 제어 람다 안의 return문: 람다를 둘러싼 함수로부터 반환 data class Person(val name: String, val age: Int) val people = listOf(Person("Alice", 29), Person("Bob", 31)) fun lookForAlice(people: List) { for(person in people) if(person.name = "Alice") { println("Found!") return } } println("Alice is not found") } >>> lookForAlie(people) Found! for문을 forEach 함수로 바꾸어도 루프의 기능은 동일하다. forEach에 넘긴 람다 안에 있는 return도 같은 의미이기 때문이다. f.. Programming/Kotlin 2021. 11. 14. 코틀린(Kotlin) - 인라인 함수 람다를 활용한 코드에선 무명 클래스 생성에 따른 부가 비용이 든다. 이 때문에 같은 작업을 수행하는 일반 함수를 사용한 구현보다 효율적이지 못하다. inline 변경자를 어떠한 함수에 붙이면 컴파일러는 그 함수를 호출하는 모든 문장을 함수 본문에 해당하는 바이트코드로 바꿔 일반 명령문과 같은 효율적인 코드를 생성하게 해 준다. 인라이닝이 작동하는 방식 위에서도 말했듯이 어떤 함수를 inline 선언하면 그 함수의 본문이 인라인 된다. 다른 말로 "함수를 호출하는 코드를 함수를 호출하는 바이트코드 대신 함수 본문을 번역한 바이트 코드로 컴파일하는 것이다." inline fun synchronized(lock: Lock, action: () -> T): T { lock.lock() try { return a.. Programming/Kotlin 2021. 11. 12. [백준/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. 이전 1 ··· 26 27 28 29 30 31 32 ··· 34 다음 728x90