Array(32)
-
[Array] Container With Most Water
두 x좌표 사이의 길이와 두 x좌표에 대한 height값 중 최소값을 곱한 값이 최대가 되는 값을 찾아라 전형적인 two-pointer문제다 포인터를 두 개 두고 Loop를 돌며, 각 Loop의 면적값을 구해 global answer와 비교하는 방식이다. 이 문제가 two-pointer인 이유는 간단하게 x좌표가 같거나 작을 수 없으므로 검사가 필요 없기 때문이다. 예컨데 i가3이라면 i보다 작거나 같은 j는 검사할 필요가 없다 다음과 같이 이중for문을 쓰면 timeout 에러가 날 것이다 이렇게 forward와 backward를 정해주고, global answer를 바꿔가며 설정해주면 된다.
2021.03.29 -
[Array] Find the Duplicate Number
두번 나온 element 리턴하기 set을 이용하여 처음 나온 element는 add로 set에 넣고, 두번째 나온건 해당 element를 리턴하면 됨 왜 medium일까 궁금한 문제.. 나중에 바이너리 서치나 투포인터로도 풀어보자
2021.03.29 -
[Array] Kth Largest Element in an Array
그냥 내림차순으로 정렬해서 k-1번째 원소 리턴하면 됨... 이거 왜 mideum이지?
2021.03.29 -
[Array] Combination Sum
candidates 배열과 target 숫자가 주어질 때, candidtates 배열의 부분집합 원소합이 target이 되는 부분집합들을 배열로 다시 만들어 리턴하는 문제이다. 단, candidates의 원소는 중복해서 여러번 사용할 수 있다. 구체적으로 설명하기 위해 콘솔을 찍었다. subset, sum, index를 args로 가진 search 라는 함수를 재귀로 사용한다. 이때 subset은 true라면 리턴배열에 넣을 부분합, sum은 target과 같은 값을 가지는지 여부 확인을 위한 원소의 합, index는 검사를 위한 요소를 가리키는 숫자이다. 실제 콘솔값을 보면 가능한 조합에 대해 모두 검사함을 알 수 있다. 로직을 돌리기 전 오름차순으로 정렬하고 element마다 하나씩 검사한다. 각 e..
2021.03.29 -
[Array] Rotate Image
2차원 배열을 오른쪽으로 90도 돌리는 문제다 사실 바로 90도를 돌리는 것보다, reverse처리를 해준 후 행과 열을 맞바꿔주면 된다. 이렇게 하면 간단하다
2021.03.27 -
[Array] Product of Array Except Self
자기 자신을 제외한 나머지 원소들의 곱을, 새로운 배열의 같은위치 원소로 설정하라는 문제이다 두 파트로 나누어 설명할 수 있다. 우선 answer = [1, 1, 1, 1] 배열을 만들어준다 첫번째 for문은 각 항목에 연쇄적으로 이전 배열 원소를 곱해주도록 만든다. 이때 Answer의 원소는 모두 1이므로, 최종적으로 [ 1, n1, n1*n2, n1*n2*n3 ]의 배열이 만들어진다. 이제 거꾸로 Loop를 돌리면 된다. 이때 주의할 점은 정방향때처럼 기준이 되는 A1이 없으므로 right라는 임의의 요소를 곱해준다는 점 뿐이다.
2021.03.27