BOJ-9012, 괄호 문제 📑 https://www.acmicpc.net/problem/9012 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 문제 정리 ▾ 문장의 개수를 입력받는다. 문장들은 괄호로 구성되어있고, 괄호가 완전한 한쌍이 되는지 체크하여 한쌍으로 잘 닫힌다면 "YES", 제대로 닫히지 않으면 "NO"를출력한다. 접근 🚶🏻 나의 생각 ▾ 괄호 "("와 ")"를 각각 카운트하는데 "("일 경우 더해주고, ")"일 경우 빼주면 된다고 생각했다. 결과 값이 "0"일 경..
BOJ-9093, 단어 뒤집기 문제 📑 https://www.acmicpc.net/problem/9093 9093번: 단어 뒤집기 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 www.acmicpc.net 문제 정리 ▾ 문장의 개수를 입력받는다. 그 후 문장을 입력하고 띄어쓰기를 기준으로 단어들을 뒤집어 출력시키면 된다. 접근 🚶🏻 나의 생각 ▾ 뒤집는다에서 내 머릿속엔 reversed() 메서드가 생각이 났다. 적절한 for문과 forEach문을 사용한다면 구현이 가능할 것으로 판단이 되었다. 나의 해결 ▾ import Foundation let cn..
BOJ-10828, 스택 문제 📑 https://www.acmicpc.net/problem/10828 10828번: 스택 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 문제 정리 ▾ 처음 명령어의 개수가 입력되고, 각각의 명령어가 입력이 되었을 때 명령어에 맞는 결과를 출력하면 된다. push: 스택에 값을 넣는 명령어 pop: 스택 가장 위에 있는 정수 출력 및 제거, 비어있을 경우 -1 출력 size: 스택의 사이즈 출력 empty: 스택이 비어있으면 1, 아니면 0 출력 top: 스택 가장 위에 값 출력,..
BOJ-10815, 숫자 카드 문제 📑 https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net 문제 정리 ▾ N개의 정수 리스트(standardLst)가 있고, M개의 정수 리스트(haveLst)가 있는데 haveLst 정수 중 standardLst에 포함된 정수가 있으면 "1", 없으면 "0"을 출력하는 프로그램 접근 🚶🏻 나의 생각 ▾ 저번 1290번 문제와 같은 유형이라 생각했다. (이진 탐색) 첫 번째 방법 ▾ i..
BOJ-1158번, 요세푸스 문제 📑 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 문제 정리 ▾ 1~N까지 차례로 들어있는 배열에서 K번째 원소를 삭제 배열의 끝에 도달 시, 다시 처음으로 이어지며 카운팅(카운팅은 유지된다) 하여 삭제 삭제되는 순서대로 출력하면 끝 ! 접근 🚶🏻 나의 생각 ▾ 문제를 보았을 때 처음 생각난 건 매 K번째의 원소를 새로운 배열에 넣어줌과 동시에 삭제해주고, 다 삭제가 되었을 때(기존 배열이 비었을 때) 새로운 배열을 출력하면 된다고 생각했다. 처음 문제를 이해하는데만 10분... 이후 생각한 대로 나..
BOJ - 1920번, 수 찾기 문제 📑 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 문제 정리 ▾ 첫 번째 Array가 두 번째 Array의 원소를 가지고 있는지를 판별하여, 포함되어 있으면 "1"을 출력하고, 포함되어 있지 않으면 "0"을 출력한다. 접근 🚶🏻 첫번째 방법 ▾ 문제를 보자마자 contains가 생각이 났다. contains는 문자열 혹은 배열에서 특정 문자가 포함되어 있는지..