일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- widgetkit
- 멋쟁이사자처럼
- c++
- 백준
- 리액트
- 네트워크
- cs
- 후기
- 알고리즘
- 스위프트
- dispatchqueue
- 문법
- 멋사
- 컴퓨터그래픽스
- widget
- swift concurrency
- spritekit
- SwiftUI
- uikit
- Protocol
- 1일1알골
- TCA
- 대외활동
- 위젯킷
- 웹
- Swift
- 영남대
- 스유
- 운영체제
- composable architecture
- Today
- Total
목록알고리즘 (13)
맛동산이
문제 [https://school.programmers.co.kr/learn/courses/30/lessons/12939] 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. 해설 기본적으로 그냥 문자열과 배열을 다루는 문제인것 같다. func solution(_ s:String) -> String { var numbers = s.components(separatedBy: " ").map{ Int($0)! } numbers.sort() r..
문제 https://www.acmicpc.net/problem/2231 해설 그냥 1부터 천천히 한개씩 분해합을 하여서 해당값을 찾으면 된다. 단 중요한점은 해당값을 리턴하는것이 아니기 때문에 이전의 값을 저장해둬야한다. import Foundation func solution() -> Int { let n = Int(readLine()!)! for i in 1...n { var sum = i var temp = i for i in String(temp) { sum += Int(String(i))! } if sum == n { return temp } } return 0 } print(solution())
문제 (https://www.acmicpc.net/problem/2839) 해설 5가 최대한으로 많이 들어가면 되는것이기 때문에 5를 처음에 나눠지는지 비교를 하고 3을 뺀 다음 다시 5로 나눠지는지 비교 계속 해나가면된다. 마지막에 나머지가 0 이 된다면 3으로만 나눠져도 나머지는 0 일것이고, 5로 나눠진다 해도 5가 하나라도 포함된 숫자일 것이다. 따라서 n이 0 보다 크다면, 계속해서 나누다가 0보다 작아지는 순간 -1을 출력하면 된다. func solution() -> Int { var n = Int(readLine()!)! var result = 0 if n % 5 == 0 { return n / 5 } while n >= 0 { n -= 3 result += 1 if n % 5 == 0 { ..
문제 https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 정답코드 #include #include #include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(NULL); int n, m; cin >> n; int number1, number2; vector arr1; for (int a = 0; a < n; a++)..
문제 https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net 정답코드 #include #include #include #include using namespace std; int main() { int n; cin >> n; queue arr1; for (int a = 1; a
문제 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 정답코드 #include #include #include #include using namespace std; int main() { int m; cin >> m; for (int c = 0; c > n; stack arr1; for (int a = 0; a < n.length(); a++) { if (n[a] =..
문제 https://www.acmicpc.net/problem/1764 1764번: 듣보잡 첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다. 이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다. www.acmicpc.net 정답코드 #include #include #include #include #include using namespace std; int main() { int n, m; cin >> n >> m; set arr1; string st1; string st2; set answer; for (int a = 0; a > st1; arr1.insert(st1); } fo..
문제 https://www.acmicpc.net/problem/1269 1269번: 대칭 차집합 첫째 줄에 집합 A의 원소의 개수와 집합 B의 원소의 개수가 빈 칸을 사이에 두고 주어진다. 둘째 줄에는 집합 A의 모든 원소가, 셋째 줄에는 집합 B의 모든 원소가 빈 칸을 사이에 두고 각각 주어 www.acmicpc.net 정답코드 #include #include #include #include #include using namespace std; // 3 5 // 1 2 4 // 2 3 4 5 6 int main() { int n, m; cin >> n >> m; set arr1; set arr2; vector ar1; vector ar2; int num1, num2; int count1, count2;..
문제 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net 코드 첫번째 코드 #include #include #include #include using namespace std; int main() { int n; int m; cin >> n; cin >> m; set arr1; vector arr2(n); string u; int count = 0; for (int a = 0; a > ..