본문 바로가기
728x90

ALGORITHM142

[BOJ/Python] 17298. 오큰수 📌 문제 https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 📌 문제 접근 방법 스택을 활용해서 풀이해보았다. 오큰수가 존재하지 않으면 -1을 입력하기 때문에 answer의 초기값을 -1로 설정했다. 스택에 값을 넣고 스택에 들어있는 값보다 큰 값이 들어오면 그 값보다 작은 값을 스택에서 모두 빼낸다. 예시로 수열 3 5 2 7 을 순회한다면, i = 0 / 수열의 해당 값 = 3 스택이 비어있으므로 3과 3의 인덱스를 각각 스택에 넣는다. 현재 answer.. 2021. 8. 28.
[BOJ/Python] 1541. 잃어버린 괄호 📌 문제 https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 📌 문제 접근 방법 처음엔 내가 직접 수식을 풀 듯이 괄호를 넣어주기 위해 따로 temp리스트에 저장해서 계산하는 코드를 구현했었는데, 생각해보니 더 간단하게 표현할 수 있었다. 어쨌든 최소가 되기 위해서는 -가 많아야 한다. 그래서 첫 번째 -가 나온 이후로는 부호를 따질 것 없이 모든 숫자를 다 마이너스 해주면 된다! (어차피 괄호를 삽입하면 모든 숫자를 다 마이너스할 수 있으므.. 2021. 8. 28.
[BOJ/Python] 2805. 나무 자르기 📌 문제 https://www.acmicpc.net/problem/2805 2805번: 나무 자르기 첫째 줄에 나무의 수 N과 상근이가 집으로 가져가려고 하는 나무의 길이 M이 주어진다. (1 ≤ N ≤ 1,000,000, 1 ≤ M ≤ 2,000,000,000) 둘째 줄에는 나무의 높이가 주어진다. 나무의 높이의 합은 항상 M보 www.acmicpc.net 📌 문제 접근 방법 알고리즘 분류가 이분 탐색이고, 대부분 이분탐색으로 풀이를 했던데 난 조금 다르게 접근해서 풀어보았다! 처음엔 문제의 스토리텔링 순서대로 읽어가며 맨 위에서부터 차근차근 높이를 하나씩 낮추면서 탐색을 했다. 결과는 시간 초과! 그 다음엔 주어진 나무의 길이를 모두 더하고 필요한 만큼의 나무 길이를 빼준 후, 나머지만큼의 나무를 N.. 2021. 8. 28.
[SWEA/Python] 4408. 자기 방으로 돌아가기 📌 문제 https://swexpertacademy.com/main/main.do SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 📌 문제 접근 방법 방 위치를 복도 기준으로 바꾼다는 아이디어는 처음부터 생각했었지만, 그걸 카운팅해서 가장 큰 숫자를 출력하면 된다는 것까지는 생각하지 못했다,, 그리고 테스트 케이스에서 항상 temp[0]이 temp[1]보다 작아서 반대의 경우를 고려 안했다가 계속계속 틀렸다,, 완성하고보니 코드 참 깔끔하넹 📌 코드 import sys sys.stdin = open('input.txt') T = int(input()) for t in range(1, T+1): N = int(i.. 2021. 8. 24.
728x90