반응형 프로그래머스59 프로그래머스 - 올바른 괄호 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12909 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 문제 풀이 스택으로 풀이한다. 왼쪽 괄호를 push, 오른쪽 괄호를 pop이라고 생각하면 된다. 만약 왼쪽 괄호가 열리지도 않았는데 오른쪽 괄호가 닫힌다면 스택이 비어있는데 pop하는 것이므로 false를 리턴해준다. for문이 끝났을 때는 스택이 비어있어야 왼쪽 괄호와 오른쪽 괄호의 수가 일치하는 것이.. 2022. 2. 16. 프로그래머스 - 전화번호 목록 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr 문제 풀이 문자열 배열을 정렬하게 되면 문자열의 size로 정렬되는 것이 아니라 맨 앞의 인덱스부터 비교해나가면서 정렬을 하게 된다 예를 들어, ["119", "97674223", "1195524421"]을 정렬하게 되면 ["119", "1195524421", "97674223"] 이 된다. 따라서, 접두어를 찾기 위해 2중 for문을 사용할 .. 2022. 2. 16. 프로그래머스 - 네트워크 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제 풀이 n은 컴퓨터의 개수이고 최대 200개이다. 따라서 방문 여부 체크를 할 수 있는 visited 배열은 200번째 인덱스까지 선언해준다. 0번 컴퓨터부터 n번 컴퓨터까지 DFS를 거쳐 연결된 컴퓨터를 체크한다. DFS 함수 내부에는 다시 0부터 n까지 해당 노드와 연결되어 있는 노드들에 대해서 DFS를 거치는데, 문제의 조건 중에서 .. 2022. 2. 15. 프로그래머스 - 타겟 넘버 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 문제 풀이 주어진 숫자를 더하고 빼서 target이 될 수 있는지 찾는 문제이다. numbers 배열의 크기가 크지 않으므로 DFS를 통해 모든 더하기, 빼기의 경우의 수를 체크해보면 된다. 소스 코드 #include using namespace std; int answer = 0; void DFS(vector numbers.. 2022. 2. 13. 이전 1 ··· 5 6 7 8 9 10 11 ··· 15 다음 반응형