Python 91

[리트코드/leetcode/python] 1685. Sum of Absolute Differences in a Sorted Array

이 문제는 비교적 간단하지만, 간단하게 풀면 시간초과에 걸리기 때문에 조금은 생각을 해야 하는 문제입니다. 문제에서는 정렬된 정수 배열 nums가 주어집니다. 배열의 각 요소 'i' 에 대해, 해당 요소와 배열 내 다른 모든 요소 'j' 들과의 절대 차이인 |nums[i] - nums[j]| 의 합을 구하는 것이 목표입니다. 이 문제에서 각 원소를 순회하면서 절댓값 계산을 하면 nums의 길이가 10**5 까지 있기 때문에 시간초과가 날 수 밖에 없습니다. 이 문제를 효율적으로 해결하기 위해서는 누적합(prefix)와 역누적합(suffix)를 사용해야 합니다. 누적합(prefix sum)과 역누적합(suffix sum)의 사용은 꼭 알아야 하는 알고리즘 중에 하나입니다. prefix sum에 대해 잠시 ..

[백준/알고리즘/python/java] 2636번 - 치즈

문제를 먼저 해석해봅시다! 문제에서는 직사각형 모양의 판에 치즈가 표시되어 있습니다. 치즈는 1로 표시되며, 치즈가 없는 부분은 0으로 표시됩니다. 각 시간 단위마다 외부 공기와 접촉한 치즈가 녹아 없어지는데요, 이 때, 치즈의 내부에 있는 공기는 외부 공기로 간주되지 않는게 핵심입니다! 문제의 목표는 모든 치즈가 녹는 데 걸리는 시간과 마지막으로 녹기 전의 치즈 조각의 수를 찾는 것입니다. 이를 위해 BFS 알고리즘을 사용합니다. BFS는 주로 그래프의 최단 경로를 찾거나, 2차원 배열에서 특정 조건에 따라 요소를 탐색할 때 사용되는 알고리즘입니다. 이 문제에서는 BFS를 이용해 보드의 가장자리부터 시작하여 외부 공기를 탐색하고, 이를 통해 치즈의 녹는 경계를 식별합니다. 외부의 공기와 내부의 공기를 ..

list(map(int, input().strip().split())) 와 [map(int, input().strip().split())] 의 차이

문득 알고리즘 문제를 풀다가 list(map(int, input().strip().split())) 랑 [map(int, input().strip().split())] 의 차이 의 차이에 대해 궁금해서 찾아봤다. 정말 직관적으로 이해가 가능했다. 이들의 차이를 이해하려면 Python의 'map' 함수와 리스트 컴프리헨션에 대해 이해할 필요가 있다. 1. list(map(int,input().strip(),split())) input().strip(),split() 은 입력된 문자열을 공백을 기준으로 나누어 리스트로 만든다. map(int, ...) 는 이 리스트의 각 원소를 정수로 변환한다. 'map' 함수는 지정된 함수(여기서는 'int')를 리스트의 각 원소에 적용한다. list(...) 는 'map..

[백준/알고리즘/python/java] 2852번 - NBA 농구

해당 문제는 NBA 농구 경기에서 특정 팀이 얼마나 오랫동안 리드했는지를 계산하는 문제입니다. 이 문제를 풀 때는 득점 순서, 득점 시간, 현재 리드 상태를 정확히 추적하는 것이 중요합니다. 문제를 딱 봤을 때, 뭔가 "득점이 성공된 시간 순서"대로 "1팀과 2팀 중에 어떤 팀이 넣었는지" 알아야 할 것 같습니다. 그리고, 득점을 함으로써 앞서가는지 혹은 동점이 됐는지도 체크"해야 하는 것이 중요합니다. 동점이 된 순간부터는 어느 팀도 리드하지 않는 상태가 되기 때문입니다. 이렇게, 주의할 점은 아래와 같이 요약할 수 있겠습니다. 경기 시간 처리 : 경기 시간은 "시:분" 형식으로 주어지며, 이를 총 분으로 변환해야 합니다. 상태 관리 : 경기의 현재 상태(동점, 팀1 리드, 팀2 리드)를 추적해야 합니..

[PYTHON] TYPEERROR: ‘UNICODE’ OBJECT DOES NOT SUPPORT ITEM ASSIGNMENT

파이썬에서는 String과 List는 몇 가지 상황에서 비슷하게 작동할 수 있다. 예를 들어, 각 요소를 반복하는 것과 같은 경우이다. for i in string_s: # 무언가를 수행 for i in list_l: # 무언가를 수행 그러나, 요소를 수정하려고 할 때, 중요한 차이점이 나타난다. 리스트와 달리 파이썬의 문자열은 "변경할 수 없다". (immutable.) 문자열에서 문자를 아래와 같이 변경하려고 하면, string_s[i] = 'X' TypeError: ‘unicode’ object does not support item assignment"라는 오류가 발생한다. 문자열을 수정하려면 먼저 리스트로 변환한 후 변경하고 다시 문자열로 결합해야 한다. list_s = list(string_s..

반응형