문제 링크https://www.acmicpc.net/problem/1931 TIL처음에는 key-value의 형태로 시간을 기록할까 했지만, 시간 범위가 2^31인걸보고 절대 안되겠다 싶어서 다른 방법 생각남은 방법은 주어진 회의들에 대해서 순회하면서 넣을까 말까 고민하는 것이었기에 빠른 회의 순으로 나열해야한다고 생각함나열한 미팅 리스트를 순회하며만약 다음 회의의 시작 시간이 현재 회의가 끝나는 시간보다 뒤면 가능 (cnt 추가하고 변수 업뎃)if me meetings[i][0]:중요한 거는 여기서 =을 꼭 붙여야한다는 점 !!!! 이거 안해서 처음에 틀림. 끝나는 것과 시작하는 것은 동일할 수 있음만약 다음 회의의 끝나는 시간이 현재 회의 끝나는 시간보다 작으면 변수만 업뎃 (더 짧으니까)두 개 ..
문제 링크https://www.acmicpc.net/problem/1541 TIL문제를 잃고 처음에는 어떻게 풀어야하나 고민했으나 '-'가 중요한 역할이라고 생각했다.-가 나오지 않는 이상 무조건 +이므로 다 더해질 것이고, -가 나오면 그 뒤에 오는 모든 숫자는 그 다음 -가 나오기 전까지 모두 더하는 것이 가장 큰 수를 뺄 수 있는 방법이라고 생각그래서 -를 기준으로 분할을 하고, 분할한 것들을 +를 기준으로 분할하여 숫자를 구했다파이썬의 매우 유용한 기능 split 사랑훼이 방법이 왜 그리디인지??그리디 알고리즘에서는 현재 상태에서 가장 좋은 선택을 계속해서 취하고 그 선택들이 합쳐져서 최적의 해를 만든다고 가정한다이 문제에서도 - 연산자를 기준으로 수식을 나누고, 나누어진 후에는 각각의 부분을..
> 문제 링크https://www.acmicpc.net/problem/2138 TIL그리디 알고리즘이지만, 무작정 푸는 것이 아닌 경우의 수를 나눠서 각 경우의 수를 그리디 돌려야하는 문제 !! 이런 문제 유형도 있으니 항상 고려하기1 0 반전하는 쉬운 방법value = 1-value 하면 됨 ( https://taltal.tistory.com/100 참고 )혹은 XOR 연산으로 가능 (^) 혹은 NOT 연산으로 가능 (not) > 대신 bool 타입으로 바뀜시간 초과에 대해서 그냥 bfs로 짠 코드는 최대 3의 100,000번 거듭제곱이므로 시간 & 메모리 초과실제로는 메모리 초과 뜸거듭 제곱의 지수가 100이상이면 무조건 안됨 !!!! 밑수가 2여도 안됨.참고: https://ourcalc.c..
최적의 솔루션을 도출하는 두 가지 알고리즘-Greedy, DP-에 대해서 차이점을 중심으로 알아본다. 스스로 헷갈려서 차이점을 명확히 구분하고 공부하기 위해 적는 포스팅이다. Greedy AlgorithmGreedy Algorithms: These algorithms make a series of choices, one after another, selecting the best option available at each step without reconsidering previous decisions. Each decision is final, meaning that once a choice is made, the algorithm does not go back to revisit or alter i..
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42883 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr TIL순서가 유지되어야하는 경우, 스택/큐 사용어차피 큰 수를 결정하는 데 가장 앞 숫자가 제일 중요하기 때문에 앞에서부터 없애도 괜찮음숫자를 이용해 큰 수 혹은 작은 수를 만드는 경우, 스택을 사용한 그리디 풀이 외우기앞에서 pop한 작은 수가 뒤에서 다시 push 될 수 없음 (그럼 가장 큰 수가 될 수 없음) > Greedy Codedef solution(number, k): answer = [] # 결과로 반환할 숫자..
문제 링크https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr TIL여러 개 항목을 신경써야하는 경우, 독립적으로 계산하기 (커서 이동 횟수, 알파벳 변경 횟수 각각 따로)동적으로 최솟값을 찾아야 하는 경우, 기준을 생각해보기단어의 길이에 따라 다른 경우, 중간을 기준으로 각각 Min값 처리가 달라질 수 있음한 번 선택한 경우 or 순서대로 처리하는 경우, 다시 고려하지 않아도 됨 > Greedy한 번 지나간 문자의 경우, 다시 되돌아가지 않아도 됨 (어차피 왼-오 순서로 처리 + 각 문자별..