본문 바로가기

구현63

[ 파이썬(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) ] 삼각수(계차수열) 나타내기 📍 삼각수 나타내기 삼각수의 정의: 위키백과 6의 배수씩 증가하는 계차수열을 구할 때는 다음과 같이 작성하자. temp은 종료 조건을 넣기 위해 넣었다. temp = 100 difference = 1 i = 1 while temp > difference: difference = difference + ( 6 * i ) i += 1 print(difference) 2021. 6. 20.