본문 바로가기
반응형

전체 글162

프로그래머스 - 숫자의 표현 / C++ 문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/12924 코딩테스트 연습 - 숫자의 표현 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 programmers.co.kr 문제 풀이 n의 범위가 10000 이하의 자연수이므로 브루트포스를 돌리기에 충분하다. 따라서, 차례대로 더해나가며 n을 만들 수 있는지 확인한다. 테스트 케이스 1번에서 보면, 1+2+3+...을 더하다보면 15가 만들어진다. 따라서 answer를 ++시켜주고 반복문을 종료한다. 다시, 처음 나오는 수를 증가시켜 2+3+4+.... 2022. 2. 17.
프로그래머스 - 올바른 괄호 / 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.
투 포인터 알고리즘(Two Pointers Approach) 투 포인터 알고리즘은 2개의 인덱스(또는 반복자)를 이용하여 문제를 푸는 방법이다. 주로 배열 또는 링크드 리스트와 함께 사용하며 포인터는 시작 시, 사용하고자 하는 목적에 따라 어느 위치에 있어도 상관 없다. 예를 들어, 아래의 왼쪽 그림처럼 같은 위치에서 시작해도 괜찮고 오른쪽 그림처럼 시작점과 끝점에서 시작해도 괜찮다. 투 포인터 알고리즘의 활용 방안은 상당히 많다. 배열을 reverse하는 문제부터 정렬, 연속 수열 문제 등이 존재한다. 예제들을 풀어보고 업데이트 한다. 배열 reverse 문제 : https://appdevorsec.tistory.com/104 수열 문제 : https://appdevorsec.tistory.com/105 2022. 2. 15.
반응형