본문 바로가기

알고리즘66

[Swift_알고리즘] 백준 15990_(1, 2, 3 더하기 5) https://www.acmicpc.net/problem/15990 15990번: 1, 2, 3 더하기 5 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. www.acmicpc.net 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 3가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 단, 같은 수를 두 번 이상 연속해서 사용하면 안 된다. 1+2+1 1+3 3+1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 10.. 2023. 3. 28.
[Swif_알고리즘] 백준 11726 타일링 https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.www.acmicpc.net    접근 방법 (오답)세로 막대 [] 가로 막대 = 라고 생각길이가 n인 직사각형을 만들기 -> n1 * [] + n2 * 로 만들면 된다고 생각했다. 이렇게 생각하면 '1'의 카드 n1개 와 '2'의 카드 n2개 를 배열하면 된다고 생각 했다.따라서 while문과 factory문을 섞어서 구현하였다. func get14444() { let inputVal = Int(readLin.. 2023. 3. 27.
[Swift_알고리즘] 퇴사 https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net  문제 상담원으로 일하고 있는 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서, 남은 N일 동안 최대한 많은 상담을 하려고 한다. 백준이는 비서에게 최대한 많은 상담을 잡으라고 부탁을 했고, 비서는 하루에 하나씩 서로 다른 사람의 상담을 잡아놓았다. 각각의 상담은 상담을 완료하는데 걸리는 기간 Ti와 상담을 했을 때 받을 수 있는 금액 Pi로 이루어져 있다. N = 7인 경우에 다음과 같은 상담 일정표를 보자. 1일에 잡혀있는 상담은 총 3일이 걸리며, 상담했을 때 받을 수 있는 금액은 10이다. 5일.. 2023. 3. 26.
[알고리즘] 2중 배열 정렬 방법 https://rldd.tistory.com/244 [Swift5] 2차원 배열 정렬하기 문법 tip! ✅ 이번 시간에는 2차원 배열 정렬하는 방법에 대해서 알아볼 예정이야 내가 생각하는 스위프트로 코딩테스트 준비의 최대 단점은 파이썬이나 C에 비해서 개인적으로 다차원 배열이나 딕셔너리 rldd.tistory.com 2023. 2. 28.
[알고리즘] 백준 리모콘 (미제사건) https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 풀기 위한 노력 미제사건임... 그냥 브루스트포스로 풀걸... 2023. 2. 23.
[Swift] 백준 알고리즘 6588 let maxValue = 1000000 func sol() { var targetArr = Array(repeating: 0, count: maxValue + 1) var tempTargetArr = Array() for i in stride(from: 2, to: maxValue, by: 1) { if targetArr[i] == -1 { continue } tempTargetArr.append(i) for j in stride(from: i*2, to: maxValue, by: i) { targetArr[j] = -1 } } while true { var leftInd = 0 var rightInd = tempTargetArr.endIndex - 1 let inputValue = Int(readLi.. 2023. 2. 20.