본문 바로가기

분류 전체보기521

[ 파이썬(python) ] 리스트 중 front, back에서부터 target index까지 어느쪽이 더 가까운지 판단하기 📍 리스트 중 front, back에서부터 target index까지 어느 쪽이 더 가까운지 판단하기 길이가 10인 리스트 arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 일 때, target_index = 3(값은 4)는 앞에서부터 더 가까운지 아니면 뒤에서부터 가까운지 판단하고 싶을 때 다음과 같은 코드를 작성하면 된다. 응용문제로는 백준 1021 - 회전하는 큐가있다. front와 back을 나누는 기준은 len(arr) // 2이다. 만약, target_index가 기준보다 작다면 앞에서부터 가깝고, 기준보다 크다면 뒤에서부터 세는 편이 더 빠르다. n = 10 arr = [i for i in range(1, n+1)] target_index = 3 # 4 if arr.inde.. 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.
[ 파이썬(python) ] 백준 4458 - 첫 글자를 대문자로 📍 백준 4458 - 첫 글자를 대문자로 백준 4458 - 첫 글자를 대문자로 ⚡️ 나의 풀이 제일 첫 글자에 upper() 함수를 이용해 대문자로 바꾸고 나머지 index는 그대로 더해준다. n = int(input()) for _ in range(n): s = input() temp = s[0].upper() ans = temp + s[1:] print(ans) 2021. 6. 22.
[ 파이썬(python) ] 프로그래머스 level1 - 키패드 누르기 📌 키패드 누르기 문제 설명 💡 나의 풀이 저번에 풀었던 백준 - ZOAC 3 문제와 비슷하다는 것을 느꼈다. 하지만ZOAC 3문제에서는 택시 거리를 구했고, 키패드 누르기 문제는 같은 거리 일 때 더 가까운 손가락은 어떤 손가락인지 구해야 했다. 이 문제의 큰 흐름은 다음과 같다. 맨 처음 왼손 좌표는 *(3, 0), 오른손 좌표는 #(3, 2)로 초기화시킨다. numbers가 반목 문을 돌면서 거리를 구해야 한다. numbers의 열에 따라 왼손 좌표, 오른손 좌표를 각각 update시킨다. 만약, numbers의 column좌표가 0이면 왼손 좌표를 update시키고, column좌표가 1이면 왼손과 오른손 중 더 가까운 손 좌표를 update, 마지막으로 column좌표가 1이면 오른손 좌표를 u.. 2021. 6. 21.