프로그래머스
-
프로그래머스 올바른 괄호개발/코딩테스트 2024. 9. 13. 16:34
문제 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어"()()" 또는 "(())()" 는 올바른 괄호입니다.")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요. 제한사항문자열 s의 길이 : 100,000 이하의 자연수문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다. 문제 분석 ( 입장에서 ) 올 경우 가능 ( 입장에서 ( 가 올 경우 )가 2개 있으면 통과 앞이 ( 이고 뒤가 ) 인 경우 ( 삭제 앞이 ( 이고..
-
프로그래머스 여행경로개발/코딩테스트 2024. 9. 12. 19:12
문제주어진 항공권을 모두 이용하여 여행경로를 짜려고 합니다. 항상 "ICN" 공항에서 출발합니다.항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution 함수를 작성해주세요.제한사항모든 공항은 알파벳 대문자 3글자로 이루어집니다.주어진 공항 수는 3개 이상 10,000개 이하입니다.tickets의 각 행 [a, b]는 a 공항에서 b 공항으로 가는 항공권이 있다는 의미입니다.주어진 항공권은 모두 사용해야 합니다.만일 가능한 경로가 2개 이상일 경우 알파벳 순서가 앞서는 경로를 return 합니다.모든 도시를 방문할 수 없는 경우는 주어지지 않습니다.예시 tickets= [["ICN", "JFK"], ["HND", "IAD..
-
프로그래머스 단어변환개발/코딩테스트 2024. 9. 10. 18:23
문제 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다.1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다.2. words에 있는 단어로만 변환할 수 있습니다.예를 들어 begin이 "hit", target가 "cog", words가 ["hot","dot","dog","lot","log","cog"]라면 "hit" -> "hot" -> "dot" -> "dog" -> "cog"와 같이 4단계를 거쳐 변환할 수 있습니다.최단 거리 탐색이므로 bfs를 이용한다 현재 depth에 탐색된 경로를 포함해야하기 때문에 별도 모델에 넣어서 현재 queue의 뎁스를 표기한다 제일 최초로 ..
-
프로그래머스 게임맵 최단거리개발/코딩테스트 2024. 9. 9. 16:46
문제ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 1번 maps = [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] answer = 112번maps = [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] answer = -1 최단거리의 경우 전체 경로를 다시 돌아가서 하는 stack을 이용하는 bfs로 하면 효율성이 떨어진다 그러므로 queue를 통해 다시 돌아가는 것이 아닌 해당 queue를 넣어 바로 빼는 방식으로 동작하는 dfs를 이용하는 것이 맞다 우선..