적당한 고통은 희열이다

- 댄 브라운 '다빈치 코드' 중에서

반응형

Algorithm/Baekjoon 40

[Swift 알고리즘] 백준 1764 듣보잡

○정렬 - Silver 4 (30분) 백준 1764 듣보잡문제김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.입력첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. 이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다. N, M은 500,000 이하의 자연수이다.듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다.출력듣보잡의 수와 그 명단을 사전순으로 출력한다. 첫번째 시도 - 시간초과당연히 시간초과 뜰 걸 알았지만..

Algorithm/Baekjoon 2024.07.22

[Swift 알고리즘] 백준 1463 1로 만들기

△다이나믹 프로그래밍 - Silver 3 (50분) 백준 1463 1로 만들기문제1. X가 3으로 나누어 떨어지면, 3으로 나눈다.2. X가 2로 나누어 떨어지면, 2로 나눈다.3. 1을 뺀다.정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 첫 번째 시도 엥 이게 왜 실버 3이지? 아주 순수하게 3의 배수이면 3으로 나누고, 2의 배수이면 2로 나누고 둘 다 아니면 -1 을 순서대로 해주었더니10에서 3이 아닌 4가 출력이 되어버린다.. 풉 이렇게 쉬울 줄 알았니?  두 번째 시도그렇다면 거꾸로 해보자 1에서 부터 시작해 n을 넘지 않을 때까지 3을 곱해주거나, 2를 곱해주거나, +1을 해주거나이렇게 하면 어떻게 되는거지..

Algorithm/Baekjoon 2024.07.21

[Swift 알고리즘] 백준 28702 FizzBuzz

○수학 - Bronze 1 (20분) 백준 28702 FizzBuzzi = 1,2,3 ...- i가 3의 배수 && 5의 배수이면 FizzBuzz- 3의 배수면 Fizz- 5의 배수면 Buzz- 아니면 그냥 i 그대로 출력연속으로 출력된 세 개의 문자열 다음에 올 문자열을 출력하세요. 연속 세 개면 그 중에 하나만 숫자라도 다음에 올 문자열을 구할 수 있다. 입력 값 받아오면서 숫자가 들어오면 바로 결과값을 구해주도록 해주었다. index가 0이면 num + 3, 1이면 +2, 2이면 +1 => 결과값 숫자는 num + (3 - i)15의 배수면 FizzBuzz, 3의 배수면 Fizz, 5의 배수면 Buzz 아니면 결과값 그대로 출력var result = 0for i in 0..

Algorithm/Baekjoon 2024.07.21

[Swift 알고리즘] 백준 2108 통계학

○수학, 정렬 - Silver 3 (40분) 백준 2108 통계학문제1. 산술평균 : N개의 수들의 합을 N으로 나눈 값2. 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값3. 최빈값 : N개의 수들 중 가장 많이 나타나는 값4. 범위 : N개의 수들 중 최댓값과 최솟값의 차이N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오.입력첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다.출력첫째 줄에는 산술평균을 출력한다. 소수점 이하 첫째 자리에서 반올림한 값을 출력한다.둘째 줄에는 중앙값을 출력한다.셋째 줄에는 최빈값을 ..

Algorithm/Baekjoon 2024.07.21

[Swift 알고리즘] 백준 30802 웰컴 키트

○사칙연산 - Bronze 3 (17분) 백준 30802 웰컴 키트몸풀기 문제 ㅇㅇ단순 연산문제여따1. input 받아오기 - 참가자 수 n - 티셔츠 사이즈 별 참가자 수 배열 - 티와 펜의 한 묶음 당 장수2. T장 씩 최소 몇 묶음? - 남아도 되고 부족하면 안되니까 T 나누기 사이즈 별 참가자 수 해서 소수점 올림 해주기3. 펜의 경우는 그냥 참가자 수를 p 로 나눈 몫과 나머지를 구해주면 됨let n = Int(readLine()!)!let array = readLine()!.split(separator: " ").map { Int($0)! }let tp = readLine()!.split(separator: " ").map { Int($0)! }let t = tp[0], p = tp[1]var..

Algorithm/Baekjoon 2024.07.18

[Swift 알고리즘] 백준 1904 01타일

○ 다이나믹 프로그래밍 (나는 재귀로 풀어뜸) - Silver 3 백준 1904 01타일 규칙 찾는데 시간 너무 오래걸림 ㅠ 5 까지는 무난무난. 아 피보나치구나 했는데 확인용으로 6도 계산해보자 하고 6에서 3개 빼먹고 엥 피보나치가 아니었나..? 하고 멍청이짓하다가 시간날림 ㅎ 암튼 결론은 피보나치 수열이다. 나는 재귀로 품 // recursion - 69100KB 12ms let n = Int(readLine()!) print(tiles(1, 0, 1)) func tiles(_ a: Int, _ b: Int, _ c: Int) -> Int { if a == n { return (b + c) % 15746 } return tiles(a + 1, c % 15746, (b + c) % 15746) } 근..

Algorithm/Baekjoon 2024.01.19

[Swift 알고리즘] 백준 1735 분수 합

× 수학, 정수론, 유클리드 호제법 Silver 3 백준 1735 분수 합 Euclidean algorithm 유클리드 호제법 : 두 양의 정수의 최대공약수를 구하는 방법 두 양의 정수 a, b (a > b) 에 대하여 a = bq + r (0 Int { print(a, b) if b == 0 { return a } else { return gcd(b, a % b) } } 이거 안쓰고 푸니까 당연히(?) 시간 초과 뜸 30000 이하 자연수니까 3만 * 3만 = 9억 -> 최악의 경우 4.5억번 반복문 돌아야,,, // 시간초과 let first = readLine()!.split(separator: " ").compactMap { Int($0) } let second = readLine()!...

Algorithm/Baekjoon 2024.01.18

[Swift 알고리즘] 백준 1213 팰린드롬 만들기

○ 그리디 Silver 3 백준 1213 팰린드롬 만들기 * 팰린드롬 : 거꾸로 읽어도 동일한 문장, 숫자, 문자열 ex) 이효리, 토마토 임한수와 임문빈은 서로 사랑하는 사이이다. 근친상간 문제 인가요..? (개소리임 제송 ㅎ) // 69108KB 8ms let name = readLine()! print(palindrome(word: name)) func palindrome(word: String) -> String { var dict = [Character: Int]() var oddNumberCount: Int = 0 var center: String = "" var result: String = "" for i in name { if let _ = dict[i] { dict..

Algorithm/Baekjoon 2024.01.18

[Swift 알고리즘] 백준 15565 귀여운 라이언

○ ? 투 포인터, 슬라이딩 윈도우 Silver 1 백준 15565 귀여운 라이언 음,, 통과는 되었는데 의문스럽다. 일단 내 답안은 다음과 같은데, n 과 k 의 범위가 1 이상 100만 이하인 상황에서 n번 반복문을 돌며 배열에 append 해주는 게 시간 초과 안뜨고 통과가 된다고..? 테스트 케이스가 문제인건가 🤔 안 될 줄 알았는데 한 번만에 통과가 되긴 했지만 몬가 찝찝하다눙,, // 122352KB 200ms let nk = readLine()!.split(separator: " ").compactMap { Int($0) } let n = nk[0] let k = nk[1] let input = readLine()!.split(separator: " ").compactMap { Int($0)..

Algorithm/Baekjoon 2023.12.25
728x90
반응형