알고리즘(10)
-
[알고리즘] 프로그래머스 숫자의 표현 ( 레벨2, 완전탐색 )
프로그래머스 레벨2 문제 중 '숫자의 표현'이라는 문제입니다. 완전탐색 기본 문제입니다. 문제 출처 : 링크 완전 탐색 관련 문제 : 백준 영화감독 숌 문제(BOJ1436) - 나의 풀이코드 풀이 포인트 주어지는 입력 조건을 고려했을 때 완전탐색으로 풀이가 가능한 범위입니다. (n은 10,000 이하의 자연수) 연속된 숫자의 합으로 표현한다는 조건에서 '연속된'이 포인트입니다. class Solution { public int solution(int n) { int answer = 0; for(int i = 1; i
2022.12.05 -
백준 괄호 추가하기 - 응용(계산기 처럼 사칙연산 순서를 고려한 계산)
백준 괄호추가하기 문제의 경우에는 수학에서 말하는 사칙연산의 순서가 없습니다. 하지만 사칙연산의 순서를 고려해서 계산을 하려면 어떻게 해야할까요? 기본적으로 우선순위를 괄호, 곱하기와 나누기, 나머지 연산 이런 순으로 처리가 되어야 할 것입니다. 그래서 중간 중간 괄호와 곱하기 나누기를 먼저 처리하고 맨 나중에 더하기와 빼기만 처리하면 될 것 같습니다. 뼈대는 괄호 추가하기 문제처럼 숫자와 연산자를 나눠서 처리합니다. 괄호는 연산자에 추가해줍니다. ' ( ' 기호가 등장하면 일단 연산자쪽에 추가를 해줍니다. 다만 ' ) '가 나오면 ' ( '가 등장할 때까지의 연산을 먼저 처리합니다. 그리고 그 결과를 ' ( '를 삭제함과 동시에 숫자가 저장되는 자료구조에 넣어주고 연산을 진행합니다. 다음에는 곱하기와 ..
2022.12.01 -
백준 16637 - 괄호 추가하기 ( 백준 16638, 백준 16639 )
백준 괄호 추가하기 문제입니다. 최근에 기업 알고리즘 테스트를 보는 과정에서 해당 문제를 조금 변형한 문제가 나왔는데, 제대로 풀지를 못했습니다. 일단 이 문제의 풀이가 기억이나서 해당 방식으로 풀어보려고 했으나, 쓰읍.... 역시 제대로 익혀두지 않으면 응용이 안되서 안풀립니다. 풀이를 한번 정리해보고자 합니다. 최초 접근 입력을 살펴보니 수식의 길이(length)는 '1
2022.11.24 -
[자료구조] 우선순위 큐(Priority Queue) - 백준 1781(컵라면)과 백준 2109 (순회강연) 풀면서 알아보기
Priority Queue(우선순위 큐)에 대해서는 면접에서 한번 질문을 받은 적이 있었다. 사실 그때는 그냥 외운것을 다시 읊조리는 정도의 답변만 했었다. 그러다 최근데 코딩테스트를 준비하면서 백준 1781번(컵라면) 문제와 백준 2109(순회강연) 문제를 풀면서 우선순위 큐에 대해서 제대로 학습하게 된 계기가 되었다. 두 문제를 어떻게 풀었고, 우선순위 큐로 인한 차이가 어떻게 발생했는지, 왜 그러했는지 정리를 하면서 우선순위 큐에 대한 내용을 머리에 다시한번 꾸깃꾸깃 넣어본다. 문제 풀이 로직은 아래 github 링크를 참조하여 주기를 바라며, 이 글은 우선 순위 큐에 대해서 정리하고자 한다. 백준 1781(컵라면) - 링크 백준 2109(순회강연) - 링크 풀이언어 : C++ ( C++에서 우선 ..
2022.11.22