백준 (329) 썸네일형 리스트형 [BOJ] 백준 2485 가로수 (Swift) 문제 https://www.acmicpc.net/problem/2485 2485번: 가로수 첫째 줄에는 이미 심어져 있는 가로수의 수를 나타내는 하나의 정수 N이 주어진다(3 ≤ N ≤ 100,000). 둘째 줄부터 N개의 줄에는 각 줄마다 심어져 있는 가로수의 위치가 양의 정수로 주어지며, 가 www.acmicpc.net 풀이 모든 가로수가 같은 간격이 되도록 새로 심어야 하는 가로수의 최소수를 구하는 문제입니다. 어떻게 모두 같은 간격이 되도록 할 수 있을까요? (4, 8, 10, 14)에 가로수가 심어져있다고 가정하면, 간격은 (4, 2, 4) 가 될 것입니다. 모두 같은 간격을 갖으려면 2가 되겠네요. (6, 12)에 심어야 모든 가로수가 2의 간격을 갖게 될 것입니다. 그렇다면 간격중 가장 작은.. [BOJ] 백준 1735 분수 합 (Swift) 문제 https://www.acmicpc.net/problem/1735 1735번: 분수 합 첫째 줄과 둘째 줄에, 각 분수의 분자와 분모를 뜻하는 두 개의 자연수가 순서대로 주어진다. 입력되는 네 자연수는 모두 30,000 이하이다. www.acmicpc.net 풀이 두 분수의 합을 기약분수 형태로 구하는 코드를 작성하면 됩니다 두 분수의 합은 어떻게 구할 수 있을까요? $$\frac{2}{3} + \frac{5}{6} = \frac{2 \times 6 + 3 \times 5}{3 \times 6} = \frac{27}{18}$$ 와같이 구할 수 있습니다. 이를 기약분수 형태로 나타내려면.. 27과 18의 최대공약수로 각각 나누어 주면 되겠죠? 최대공약수는 유클리드 호제법을 사용하여 구할 수 있습니다... [BOJ] 백준 13241 최소공배수 (Swift) 문제 https://www.acmicpc.net/problem/13241 13241번: 최소공배수 정수 B에 0보다 큰 정수인 N을 곱해 정수 A를 만들 수 있다면, A는 B의 배수이다. 예: 10은 5의 배수이다 (5*2 = 10) 10은 10의 배수이다(10*1 = 10) 6은 1의 배수이다(1*6 = 6) 20은 1, 2, 4,5,10,20의 배수이다. 다 www.acmicpc.net 풀이 https://dev-mandos.tistory.com/156 [BOJ] 백준 1934 최소공배수 (Swift) 문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배.. [BOJ] 백준 1934 최소공배수 (Swift) 문제 https://www.acmicpc.net/problem/1934 1934번: 최소공배수 두 자연수 A와 B에 대해서, A의 배수이면서 B의 배수인 자연수를 A와 B의 공배수라고 한다. 이런 공배수 중에서 가장 작은 수를 최소공배수라고 한다. 예를 들어, 6과 15의 공배수는 30, 60, 90등이 있 www.acmicpc.net 풀이 최소공배수는 어떻게 구할 수 있을까요? 최소공배수는 두 수의 곱 / 최대공약수로 구할 수 있습니다. 그렇다면 최대공약수는 어떻게 구할 수 있을까요? 최대공약수는 소인수분해를 하여 공통된 소수를 찾아서 구할 수도 있겠지만, 유클리드 호제법을 사용하면 더 효율적으로 구현할 수 있습니다. 유클리드 호제법은 나머지를 구하는 연산을 통해 구현하는데, 간단하게 12와 30이 있.. [BOJ] 백준 11729 하노이 탑 이동 순서 (Swift) 문제 https://www.acmicpc.net/problem/11729 11729번: 하노이 탑 이동 순서 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 www.acmicpc.net 풀이 머리가 터질뻔 했던 문제입니다.. 하노이탑을 어떻게 재귀로 구현해야할지.. 정말 막막했습니다. 유튜브에서 본 하노이탑 알고리즘이 정말 많은 도움이 되었습니다. 이해가 잘 안간다면, 한 번 보시는 것을 추천드립니다! https://www.youtube.com/watch?v=FYCGV6F1NuY 1번 기둥(시작), 2번 기둥(보조), 3번 기둥(목표) 라고 나타내고, hanoi.. [BOJ] 백준 2447 별찍기 - 10 (Swift) 문제 https://www.acmicpc.net/problem/2447 2447번: 별 찍기 - 10 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 www.acmicpc.net 풀이 이 문제는 재귀를 사용해서 별을 찍는 패턴을 찾아 별을 찍어주는 문제입니다. n이 3일때, 9일때, 27일때를 한번 비교해봅시다. n이 3일때 첫번째 줄에서는 "*"이 3개 두번째 줄에서는 "*" 1개, " " 1개, "*" 1개 세번째 줄은 첫번째 줄과 동일합니다. n이 9일때 9줄을 3등분 해서 확인해봅시다. 1 ~ 3번째 줄은 n이 3일때 찍히는 패턴이 .. [BOJ] 백준 24060 알고리즘 수업 - 병합 정렬 1 (Swift) 문제 https://www.acmicpc.net/problem/24060 24060번: 알고리즘 수업 - 병합 정렬 1 첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다. 다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109) www.acmicpc.net 풀이 병합 정렬의 동작과정을 안다면 조금 더 쉽게 이해할 수 있습니다. 모른다면.. 일단 의사코드를 Swift 언어로 풀어서 작성해봅시다. 의사코드를 작성하는데 주의점이 하나 있습니다. merge 함수에서 t를 1번 인덱스로 초기화하는데, 이를 0으로 바꿔줍시다. 의사코드가 작성이 되었다면 병합 정렬이 정상적으로 동작이 될 것입니다. 이제 K번.. [BOJ] 백준 25501 재귀의 귀재 (Swift) 문제 https://www.acmicpc.net/problem/25501 25501번: 재귀의 귀재 각 테스트케이스마다, isPalindrome 함수의 반환값과 recursion 함수의 호출 횟수를 한 줄에 공백으로 구분하여 출력한다. www.acmicpc.net 풀이 이 문제는 팰린드롬인지 판별하고, 판별하는데에 recursion 함수가 몇 회 호출하는지 횟수를 출력해주는 문제입니다. recursion 함수를 확인하면, 팰린드롬인지 아닌지를 맨 앞 인덱스, 맨 뒤 인덱스의 요소가 같은지 확인하고 다르다면 0을 리턴, 같다면 인덱스를 한 칸씩 옮겨서 다음 인덱스를 확인합니다. 그 후, 전부 같다면 1을 리턴하게 됩니다. 저는 작성된 recursion 함수를 Swift 언어로 옮겨서 작성하였고, 호출 횟수.. 이전 1 ··· 22 23 24 25 26 27 28 ··· 42 다음