Swift - 백준 2156번 포도주 시식
·
Algorithm/Baekjoon
그려보고 공식을 찾아보자, 값을 건너뛰면서 누적시킬 수 있다  import Foundationvar input = Int(readLine()!)!var arr: [Int] = .init(repeating: 0, count: 3)var dp: [Int] = .init(repeating: 0, count: 3)for _ in 0..
백준 - 큰수 A+B (C#)
·
Algorithm/Baekjoon
BigInteger 를 사용하면 long 보다 더 큰 수를 저장 및 사용할 수 있습니다 C#의 BigInteger는 매우 큰 정수를 표현하기 위한 자료형입니다.이 자료형은 .NET Framework 4.0 이상에서 사용할 수 있으며, 다른 정수형 자료형과 마찬가지로 System.Numerics 네임스페이스에서 제공됩니다.BigIntegers는 다음과 같은 방법으로 생성할 수 있습니다. using System.Numerics;// BigInteger 변수 생성BigInteger bigInt = BigInteger.Parse("123456789012345678901234567890"); 실제로 BigIntegers는 무한한 값을 저장할 수 있는 것은 아닙니다. 이 자료형이 다룰 수 있는 최대 값은 2^Int..
C++ 2xn 타일링
·
Algorithm/Baekjoon
DP문제는 항상 그랬듯이 손으로 적어가면서 풀어야 합니다 2xn 타일링 문제는 대충 요런 느낌으로 직접 그려가면서 풀면 되겠습니다. #include using namespace std;int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int dp[1001] = {0,}; dp[1] = 1; dp[2] = 2; dp[3] = 3; for(int i = 4; i > n; cout
Swift - 백준 1927 최소 힙
·
Algorithm/Baekjoon
swift에서는 최소 힙에 관한 라이브러리가 없기 때문에 직접 구현해야 합니다 push 하는법push 하는 법은 다음과 같습니다현재 힙의 크기가 0보다 크고 현재 값이 부모 노드보다 작을 때까지 while 문을 반복합니다.while 문에서 반복되는 동안 현재 값의 노드와 부모 노드와 값을 바꾸고 부모 노드로 현재 위치(인덱스)를 이동시킵니다.while 문을 반복하다보면 현재 들어온 값은 자신보다 큰 부모 노드가 나올때까지 부모 노드와 계속 swap합니다.func push(_ x: Int) { heap.append(x) var n = heap.count-1 while n > 0 && x  pop 하는법pop 은 push 에 비해 코드는 길지만 원리는 비슷합니다.만약 현재 힙이..
Swift - 백준 2606번
·
Algorithm/Baekjoon
바이러스 문제는 DFS 또는 BFS 를 사용하여 해결할 수 있습니다  DFS를 구현하기 위해서는 재귀함수를 구현해야 합니다. 이전에 값들을 저장하기 위해서 visited 배열을 만들었습니다. 예제 입력 1761 22 31 55 25 64 7 예제 출력 24 풀이풀이를 해보면 바이러스 노드를 직접 구해봅니다. 1: 2 52: 1 3 53: 24: 75: 1 2 66: 57: 4 DFS는 계속해서 파고파고 들어가는 것이기 때문에 1 -> 2 -> 3 -> 5 -> 6 이므로 1 컴퓨터는 총 4대의 컴퓨터를 감염시켰습니다.이제 위에 DFS를 직접 구현하여 해결하는 코드입니다.import Foundationlet n = Int(readLine()!)!let m = Int(readLine()!)!if m = 1 ..
Swift - 백준 1541번
·
Algorithm/Baekjoon
정규식을 사용하여 해결할 수 있습니다   정규식이란 "[+-]" 처럼 String의 특정 문자를 찾을 때 사용할 수 있도록 해주는 식이며 아래처럼 + 또는 - 를 찾았을 경우 해당 값을 찾을 대체하여 문제를 해결하였습니다.import Foundationlet input = readLine()!let regexPattern = "[+-]"let modifiedString = input.replacingOccurrences(of: regexPattern, with: " $0 ", options: .regularExpression)var result = modifiedString.split(separator: " ").map { String($0) }var minus = 0var plus = 0while !r..
ytw_developer
'Algorithm/Baekjoon' 카테고리의 글 목록