본문 바로가기
728x90

Problem Solving103

[Swift] BOJ 11967 불켜기 풀이 [Swift] BOJ 11967 불켜기 풀이  1. 문제 분석 일단 이 문제는 문제를 잘 읽어야 한다는 것을 "맞았습니다!"를 받고 알게 되는 문제이다. 대충 시간복잡도랑 불 켤 수 있는 방을 찾으면 되겠다해서 BFS를 기계적으로 구현하면 바로 틀리게 된다.BFS 투어를 하고 있던 나는 순간이동 같은 개념인줄 알고 1, 1에서 1, 3으로 가고... 뭐 이런식으로 생각하고 처음 코드를 짰다가 빨간 "틀렸습니다"를 맛보게 되었다. 그런데 그 후에도, 스위치를 켠 방은 무조건 건너갈 수 있을 것이다라고 생각하고 코드를 짜버려서 또 틀렸습니다를 마주했다. 일단은 BFS로 현재 갈 수 있는 곳을 탐색해야 해서 이동하는 것은 맞다. 그런데 중요한 것은 암소가 "불이 켜진 방"으로만 갈 수 있다는 사실이다. 1, .. 2024. 9. 20.
[Swift] BOJ 2504 괄호의 값 풀이 정리 [Swift] BOJ 2504 괄호의 값 풀이 정리  1. 문제 분석 1) 구해야할 값 분석 최종적으로 구해야 할 것은 괄호열의 값의 총합이다.괄호가 성립된다고 해서 단순하게 값이 총합에 + 되는 것이 아니라, 어떤 괄호쌍에 쌓여 있게 되면, 2배 또는 3배로 곱해주어야 한다. 어떤 것이 중첩된 괄호인지 판단하고, 그에 맞게 괄호쌍의 점수를 판단해주는지가 문제이다. 볼드체 쳐진 부분을 어떻게 처리하는 지가 관건인 문제인 것이다.  2) 도구 선택 괄호는 쌍으로 이루어지기 때문에 스택 구조가 적합할 것이다. 괄호를 여는 부분을 스택에 넣고, 닫히는 괄호는 스택에서 제거해서 올바른 괄호쌍을 찾는다. 닫는 괄호가 나올 때, 열린 괄호와 짝이 맞는지를 확인해야 한다. 이때, 짝이 안맞으면 잘못된 입력이기 때문에.. 2024. 9. 14.
[Swift] 프로그래머스 n^2 배열 자르기(lv. 2) [Swift] 프로그래머스 n^2 배열 자르기(lv. 2) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 3. 코드 import Foundation func solution(_ n:Int, _ left:Int64, _ right:Int64) -> [Int] { var array = [Int]() var line = left / Int64(n) var row = left % Int64(n) var k: Int64 = { i.. 2023. 4. 10.
[Swift] 프로그래머스 피로도(lv. 2) [Swift] 프로그래머스 피로도(lv. 2) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 3. 코드 import Foundation func solution(_ k:Int, _ dungeons:[[Int]]) -> Int { var answer: Int = 0 explore(dungeons, &answer, k, 0) return answer } func explore(_ dungeons:[[Int]], _ answe.. 2023. 4. 8.
[Swift] 프로그래머스 [3차] n진수 게임(lv. 2) [Swift] 프로그래머스 [3차] n진수 게임(lv. 2) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/17687 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 3. 코드 func solution(_ n:Int, _ t:Int, _ m:Int, _ p:Int) -> String { var numbers: String = "" for i in 0 ... t * m { let temp = String(i, radix: n).uppercased() numbers += temp }.. 2023. 4. 7.
[Swift] 프로그래머스 오픈채팅방(lv. 2) [Swift] 프로그래머스 오픈채팅방(lv. 2) 1. 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42888 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 접근 3. 코드 import Foundation func solution(_ record:[String]) -> [String] { var result = [[String]]() var userList: Dictionary = [String : String]() for i in record { let temp = i.split(se.. 2023. 4. 6.
728x90