알고리즘 문제풀이
-
[프로그래머스/Level 2] 게임 맵 최단거리 (C++)알고리즘 문제풀이/프로그래머스 2021. 3. 25. 11:08
programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[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]] 11 [[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]] -1 programmers.co.kr 전형적인 BFS 문제였습니다. #include #include using namespace std; int N, M; vector Maps; bool visit[101][101]; int dx[4] = {1, 0, -1, 0}; int dy[4] = {0, 1, 0, -1}; struct Info { int x, y, t;..
-
[백준/BOJ] 16637번 괄호 추가하기 (C++)알고리즘 문제풀이/백준 2021. 3. 21. 13:32
www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 길이가 N인 수식이 있다. 수식은 0보다 크거나 같고, 9보다 작거나 같은 정수와 연산자(+, -, ×)로 이루어져 있다. 연산자 우선순위는 모두 동일하기 때문에, 수식을 계산할 때는 왼쪽에서부터 순 www.acmicpc.net 삼성 A형 기출 문제 : 브루트 포스(완전 탐색) 입력된 수식이 3+8*7-9*2 라고 가정하고, 괄호를 형성할 수 있는 경우의 수를 따져봅시다. 괄호가 1개인 경우 (3+8)*7-9*2 3+(8*7)-9*2 3+8*(7-9)*2 3+8*7-(9*2) 괄호가 2개인 경우 (3+8)*(7-9)*2 (3+8)*7-(9*2) 3+(8*7)-(9*2) 괄호가 3개인 경우 (3+8)*(7-9)*2 => 괄호..
-
[프로그래머스/Level 1] 2016년 (C++)알고리즘 문제풀이/프로그래머스 2021. 3. 16. 10:09
programmers.co.kr/learn/courses/30/lessons/12901 코딩테스트 연습 - 2016년 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까 programmers.co.kr 별다른 설명없이 주석을 통해 문제를 이해할 수 있을 것 같습니다. #include #include using namespace std; string solution(int a, int b) { int total = 0; // 1일이 금요일인데 배열의 인덱스는 0번부터 시작하므로, "THU" 부터 초기화 string day[7] = {"T..
-
[LeetCode] Reverse Linked List (C++)알고리즘 문제풀이/LeetCode 2021. 3. 15. 00:08
leetcode.com/problems/reverse-linked-list/ Reverse Linked List - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 연결리스트의 참조 방향을 바꾸는 문제였습니다. iterator와 recursive 두가지 풀이 방식이 존재합니다. iterator /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * List..
-
[LeetCode] Majority Element (C++)알고리즘 문제풀이/LeetCode 2021. 3. 14. 16:53
leetcode.com/problems/majority-element/ Majority Element - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 주어진 배열에서 과반수 이상 존재하는 원소가 있을 때, 이를 구하는 문제입니다. map을 활용할 경우, 주어진 배열의 빈도수를 전부 map에 기록하고, 빈도 수가 가장 큰 것을 찾으면 됩니다. /* map * time complexity : O(N) * space complexity : O(N) */ class ..
-
[LeetCode] Intersection of Two Linked Lists (C++)알고리즘 문제풀이/LeetCode 2021. 3. 11. 00:31
leetcode.com/problems/intersection-of-two-linked-lists/ Intersection of Two Linked Lists - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 두 연결리스트가 주어졌을 때 만나는 지점을 찾는 문제입니다. Discuss에서 나온 풀이를 참고하여 해결했는데, 매우 신기한 풀이였습니다. 투포인터를 이용한 풀이였는데, headA와 headB를 각각 p1, p2로 가리키고 각각 null을 가리킬 때마다 h..
-
[LeetCode] Min Stack (C++)알고리즘 문제풀이/LeetCode 2021. 3. 10. 00:39
leetcode.com/problems/min-stack/submissions/ Min Stack - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 최소값을 리턴하는 스택을 구현하는 문제였습니다. /* vector */ class MinStack { public: vector v; /** initialize your data structure here. */ MinStack() { } void push(int x) { v.push_back(x); } void p..
-
[LeetCode] Linked List Cycle (C++)알고리즘 문제풀이/LeetCode 2021. 3. 9. 00:44
leetcode.com/problems/linked-list-cycle/ Linked List Cycle - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com unordred_map 자료구조를 이용하여 ListNode*의 빈도가 2번 이상 나오는 경우를 찾는 방법과 투 포인터를 이용해 fast 포인터와 slow 포인터가 만나는지를 확인하는 방법이 있습니다. /** * Definition for singly-linked list. * struct ListNode { ..