Algorithm272 [ 파이썬(python) ] 백준 17608 - 막대기 📍 백준 17608 - 막대기 문제: 백준 17608 - 막대기 💡 나의 풀이 일렬로 세워진 막대기를 오른쪽에서 봐야 하기 때문에 막대기의 입력을 모두 받아 리스트로 만들고 문제를 풀었다. 처음에는 오답 판정을 받았는데 최대 높이의 막대기를 갱신해주지 않아서 그랬다. 첫번째 방법은 sticks인덱스를 거꾸로 확인하여 최대의 막대기를 갱신한 방법이고 두 번째 방법은 sticks를 pop()으로 하나씩 뽑아 최댓값을 갱신하는 방법을 사용했다. pop()을 사용한 방법의 실행시간이 약 30m/s정도 빨랐다. (사진에서 첫번째 방법은 하단, 두 번째 방법은 상단) # 첫번째 방법 import sys input = sys.stdin.readline n = int(input()) sticks = [int(input.. 2021. 6. 28. [ 파이썬(python) ] 백준 1021 - 회전하는 큐 📌 백준 1021 - 회전하는 큐 백준 1021 - 회전하는 큐 💡 나의 풀이 처음에는 한 번에 2번 연산 혹은 3번 연산을 따로따로 진행하고 둘 중 작은 값을 출력하는 건 줄 알았는데, arr을 보고 더 가까운 쪽에 2번 연산, 3번 연산을 판단해서 풀어야 하는 문제였다. 머리로는 이해했는데 막상 구현하려니까 잘 떠오르지 않았다. 결국, 함수를 선언하여 풀었지만 왠지 코드가 많아 보였다. 현재 arr을 보고 target값을 앞 / 뒤에서부터 몇 번째 떨어져있는지 계산한 index를 return한다.(compare_min_length) 앞쪽이 더 가까우면 2번 연산을 진행한다.(front_rotate) 뒤쪽이 더 가까우면 3번 연산을 진행한다.(back_rotate) 다른 사람의 코드를 보니까 2, 3번.. 2021. 6. 27. [ 파이썬(python) ] 백준 13335 - 트럭 📍 백준 13335 - 트럭 백준 13335 - 트럭 ⚡️ 나의 풀이 문제 분류는 시뮬레이션이었는데 실제로 일어날 수 있는 일을 코드로 구현 하니까 흥미로웠다. 또, 실버 1임에도 불구하고 문제가 어려웠는데 구현 조건이 생각보다 까다로웠기 때문이다. 문제흐름은 다음과 같다. 현재 다리(bridge)무게 + 넘어 올 트럭의 무게가 다리 하중보다 작으면 넘어 올 수 있고 그렇지 않으면 넘어 올 수 없다. 다리길이를 지난 트럭은 다리를 벗어난다.(pop) 이때, 현재 다리무게는 방금 다리를 벗어난 트럭의 무게를 빼줘야 한다. 다리에 트럭이 없을 때까지 반복한다. 1번 조건은 잘 생각했는데 2번 조건에서 트럭이 다리를 건너가고 나서 트럭의 무게만큼 현재 weight를 빼줄 생각을 못해서 오답판정을 받았다. 또한.. 2021. 6. 25. [ 파이썬(python) ] 백준 1966 - 프린터 큐 📍 백준 1966 - 프린터 큐 백준 1966 - 프린터 큐 ⚡️ 나의 풀이 문제가 잘 이해가 되지 않아 4 ~ 5번 정도 다시 봤다. 결론적으로 현재 index와 동일한 우선순위값이 제일 클 때 cnt+=1을 해주면 된다. 다른 테스트 케이스는 괜찮았는데 중복된 우선순위가 있는 문서를 처리할 때 고민을 많이 했다. 예제 입력 1 - 테스트케이스 중 제일 마지막 1, 1, 9, 1, 1, 1을 예로 들어보자. (그림, 글씨 양해 부탁드립읍니다.) 자신보다 높은 우선순위가 없을 때까지 회전한다.(이때는 cnt가 올라가지 않는다. why? 인쇄를 하지 않았기 때문) pop 할 위치(가장 첫 번째 index)에 위치했을 때 해당 값의 우선순위가 제일 높다면 pop처리하고 cnt+=1 해준다. 2번 과정에서 만.. 2021. 6. 24. [ 파이썬(python) ] 백준 2563 - 색종이 📍 백준 2563 - 색종이 백준 2563 - 색종이 ⚡️ 나의 풀이 색종이가 붙은 검은 영역의 넓이를 구하는 문제라서 처음에 (100 * n) - 색종이끼리 겹치는 넓이로 구하면 될 줄 알았는데 색종이가 겹치는 경우 + 겹치지 않는 경우 등등.. 경우의 수가 많아 이 방법은 힘들다고 생각했다. 2차원 배열을 선언한 다음 가로, 세로의 길이를 1로 초기화해주는 방법을 봤는데, 이런 방법도 있구나 하며 감탄했다. 그래서 white_board[i][j] += 1로 선언한 다음 300 - cnt >= 2로 구했더니 오답판정이 나왔다. 결론적으로 1씩 누적할 필요 없이 전체 사각형이 그려진 값(1)만 출력하면 됐었다. n = int(input()) white_board = [[0] * 100 for _ in r.. 2021. 6. 23. 이전 1 ··· 25 26 27 28 29 30 31 ··· 55 다음