목록Algorithm (6)
cchanmi
안녕하세요. 오늘은 가장 긴 팰린드롬 문제에 대해서 기록해 보려고 해요. 난이도는 level 3입니다. https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음에 문제를 잘못 이해하기도 했고... 반례를 아예 생각하지 못한 코드를 작성하기도 했고... 이것저것 찾아보면서 고민해 보다가 2시간 만에 겨우 풀었네요 ㅠ 2시간 동안의 삽질과 의문들, 왜 그 코드는 틀렸었고, 수정한 코드는 맞았는지에 대해 적어두려고 해요. 먼저 저는 DP로 접근했습니다...
https://www.acmicpc.net/problem/16988 16988번: Baaaaaaaaaduk2 (Easy) 서기 2116년, 인간은 더 이상 AI의 상대가 되지 못하게 되었다. 근력, 순발력, 창의력, 사고력, 문제해결능력, 심지어 인간미조차 AI가 인간을 앞선다. AI가 온 지구를 관리하며 이미 인류는 지구의 www.acmicpc.net 골드 3 문제입니다. 나의 바둑돌을 2개씩 두는 모든 경우의 수를 다 검증해 보고(브루트 포스), 나의 바둑돌이 2개일 때, bfs 함수를 실행시켜서 나온 값들을 더한 뒤 최대값을 찾는 방법으로 접근했습니다. 스위프트로 푸시는 분들에게 도움이 되기를 바라며! let input = readLine()!.split(separator: " ").map{Int(..
일주일 동안 못 풀었던 문제를 일주일 만에 드디어!!! 풀었기 때문에 기록해 보려고 합니다! 🧡 문제는 https://www.acmicpc.net/problem/5427 5427번: 불 상근이는 빈 공간과 벽으로 이루어진 건물에 갇혀있다. 건물의 일부에는 불이 났고, 상근이는 출구를 향해 뛰고 있다. 매 초마다, 불은 동서남북 방향으로 인접한 빈 공간으로 퍼져나간다. 벽에 www.acmicpc.net 백준 5427번의 불 문제이며, 티어는 골드 4입니다. 저는 일단 testCase를 입력 받고, testCase만큼 for문을 돌려 주는 코드로 시작하였습니다. 여러 testCase가 반복되기 때문에 그래프의 초기화를 잘해 주어야 하는데요. 저는 매번 초기화해 주는 작업에서 실수를 할까 봐, testCase..
2019 KAKAO BLIND RECUITMENT 문제이며, 난이도는 레벨 1입니다. 풀다가 시간 초과가 발생하게 되어서, 이중 for문 코드와, for문 안에 고차함수, 단일 for문 코드들을 모두 작성해 보았으며, 각각의 코드들의 시간을 측정해 보았습니다. https://school.programmers.co.kr/learn/courses/30/lessons/42889 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이중 for문 코드 import Foundation func solution(_ N:Int, _ stages:[Int]) -> [Int] ..
인생 첫 골드 문제,,, 이틀 걸려 고민하면서 풀었다. 내 코드가 다른 분들에게 참고가 되기를,,, https://www.acmicpc.net/problem/1918 1918번: 후위 표기식 첫째 줄에 중위 표기식이 주어진다. 단 이 수식의 피연산자는 알파벳 대문자로 이루어지며 수식에서 한 번씩만 등장한다. 그리고 -A+B와 같이 -가 가장 앞에 오거나 AB와 같이 *가 생략되는 등의 www.acmicpc.net 문제 풀면서 고려했던 점은 연산자로는 +, -, *, /, (, )와 알파벳들이 입력으로 주어진다. 1. ( 열린 괄호가 들어왔을 때에는 일단 stack에 추가 2. ) 닫힌 괄호가 들어왔을 경우네는 ( 열린 괄호를 만나기 전까지 stack의 값을 빼면서 result 배열에 삽입한다 2-a wh..
최근에 알고리즘 문제를 풀다가 백트래킹이라는 개념을 사용해야 하는 문제를 접하게 되었는데, 어떤 개념인지 잘 짚고 넘어가면 좋을 것 같아서 정리해 보려고 합니다! 백트래킹이란? 제약 조건 만족 문제에서 해를 찾기 위한 전략입니다. 보통 DFS랑 같이 사용되곤 하는데요. 문제에서 요구하는 해를 찾기 위해 제약 조건에 따라 점진적으로 방문하다가, 해당 노드가 제약 조건에 만족할 수 없다고 판단하였을 때, 즉시 이 노드는 더이상 방문할 필요가 없음을 판단하고, 뒤로 돌아가 다른 노드를 탐색하며, 최적의 해를 찾는 방법이라고 설명할 수 있습니다. 조건에 맞지 않을 경우 더이상의 탐색을 포기하는 것을 가지치기라고 얘기하며, 주어진 해를 찾는 탐색의 시간을 절약하는 기법입니다. 결론적으로 백트래킹은 DFS로 트리 ..