2레벨 4

[프로그래머스] 2020 KAKAO BLIND RECRUITMENT 괄호 변환 with Swift

안녕하세요! 오늘은 프로그래머스 2레벨 괄호 변환 문제를 풀어보겠습니다! 이번 문제는 문제를 보고 살짝 겁을 먹었는데요. 문제에서 시키는대로 하면 이상없이 문제가 잘 풀리더라구요! 문제 풀이를 보시기 전에 겁먹지 마시구 한번 더 돌아가서 문제에서 시키는 대로 해보시면 좋을듯 합니다! 0. 우선 문제가 재귀 형식을 이루어져 있기 때문에 function하나를 만듭니다. 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. if w.isEmpty { return "" } 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. var balance = 0 var splitIndex = 0..

[프로그래머스] 코딩테스트 연습 2017 팁스타운 짝지어 제거하기 with Swift

안녕하세요! 오늘은 프로그래머스 2레벨 짝지어 제거하기 문제를 풀어보겠습니다. 이 문제는 Stack 자료구조를 이용하여 문제를 풀 수 있습니다. Stack은 first in last out구조로 배열로도 쉽게 구현가능하기 때문에 배열로 문제를 해결하였습니다. stack에 입력된 문자열을 하나하나 입력해주면서 직전 입력과 같다변 pop해주게 된다면 문제가 해결됩니다. import Foundation func solution(_ s:String) -> Int{ var characterStack: [Character] = [Character]() for character in s { if !characterStack.isEmpty && characterStack.last! == character { chara..

[프로그래머스] 코딩테스트 연습 2017 카카오코드 본선 단체사진 찍기 with C++(brute force)

안녕하세요! 오늘은 프로그래머스 단체사진 찍기 문제를 풀어보겠습니다. 이 문제는 제 기준에선 참 문제를 이해하기 어렵게 만들었다고 생각했는데요. 왜냐면 일렬로 선다고 해놓고 나란히 선다고 하고 저는 전체 경우의 수가 시그마n=1to8 8P(8-n)*n^(8-n)개인줄 알았습니다... 그래서 레벨2에도 엄청난 수열문제가 나올 수 있구나... 이런 마음이였는데요 다행히 그건아니고 최대 8!개를 탐색하는 문제였습니다! 또, 맞왜틀(맞는데 왜 틀리지?!) 문제입니다! 한 session에 하나의 testcase가 아니라 여러 testcase가 들어있어 전역 변수를 초기화 해주지 않으면 오답이 됩니다! 모두 구현한 뒤 오답이길레 한참 헤맸습니다 ㅠㅠ 잡설은 이쯤하고! 같이 문제 풀어보시죠! 알고리즘은 brute f..

[프로그래머스] 코딩테스트 연습 2017 카카오코드 예선 카카오프렌즈 컬러링북 with C++

안녕하세요! 오늘은 프로그래머스 카카오프렌즈 컬러링북 문제를 풀어보았습니다! 2레벨은 문제가 몇개 안되 C++문제도 같이 풀려고합니다! Swift로 풀어보고 싶었으나 어쩔 수 없죠 ㅠ 이 문제는 기본적인 탐색 문제입니다! bfs(Breadth First Search)나 dfs(Depth First Search) 중 사용하면 되는데요! 서로 장단점이 있는 알고리즘입니다! 나중에 포스팅으로 dfs와 bfs에 대해 자세히 포스팅 하도록하겠습니다! 저는 dfs로 문제를 풀었는데요! 같이한번 살펴보시죠! 우선 인자로 들어온 vector picture 를 함수 내부에서 사용하기 좋게 전역변수로 선언한 map으로 옮겨줍니다! 옮겨주면서 isVisitedMap도 같이 초기화해줍니다! for(int i = 0; i < ..