PS

    9012번 괄호 / swift

    https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 스택 구현 관련 문제로 단골 출시되고 있는 괄호 문제다. 먼저 swift는 딱히 스택을 구현하지 않아도 되는데 그 이유는 popLast, appned 메서드가 이미 구현되어 있기 때문에 그냥 배열을 스택처럼 사용하면 된다. [1, 2, 3, 4, 5] 이런 배열이 있다고 쳐보면 이것을 세로로 세우게 되면 그게 바로 스택이다. 위에 메서드 popLast의 이름을 보고 ..

    2609 최대공약수와 최소공배수 / swift

    https://www.acmicpc.net/problem/2609 2609번: 최대공약수와 최소공배수 첫째 줄에는 입력으로 주어진 두 수의 최대공약수를, 둘째 줄에는 입력으로 주어진 두 수의 최소 공배수를 출력한다. www.acmicpc.net 문제에서 자세히 보기를 누르면 유클리드 호제법이라는 개념이 나온다. 자세한 내용은 밑에 링크해둔 유튜브를 보면 알 수 있다. import Foundation var num = readLine()!.split(separator: " ").map{ Int($0)!} var max = num.max()! var min = num.min()! // optional로 나오니 강제할당해야한다. var c = max % min while c != 0 { max = min mi..

    2164번: 카드 2 / swift

    https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net import Foundation let N = Int(readLine()!)! var queue = Array(1...N) // 이런 배열 형태는 처음봄. var pointer = 0 // 포인터 만들기. if N == 1 {print(1)} // card수가 1이면 그냥 1출력 else { while true { queue[pointer] = 0 // 맨 앞에 있는 카드 버리기. queue.ap..

    1920번 수 찾기 - swift

    https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 처음에는 N과 M 배열을 각각 만든 후에 M배열의 요소를 N배열에 하나하나 모두 비교해서 참, 거짓을 리턴하려 시도 했었다. 하지만 시간도 오래 걸릴 뿐더러 더 좋은 자료구조 방법이 있었다. 그것은 이분 탐색이다. 이분 탐색이 뭔지는 아래 링크에 올려놨으니 살펴보자. https://zerostar0809.tistory.com/10?category=1..

Buffering ...