[백준/파이썬] 7795번

민정·2023년 12월 20일
0

[백준/파이썬]

목록 보기
195/245
post-thumbnail

📍백준 7795번 문제

https://www.acmicpc.net/problem/7795

코드

import sys
input = sys.stdin.readline

testCase = int(input())
for _ in range(testCase):
    a, b = map(int, input().split())
    arr1 = list(map(int, input().split()))
    arr2 = list(map(int, input().split()))
    arr1.sort()
    arr2.sort()
    start = 0
    cnt = 0
    for i in range(a):
        while True:
            if start == b or arr1[i] <= arr2[start]:
                cnt += start
                break
            else:
                start += 1
    print(cnt)

풀이

  • 두 배열 모두 오름차순으로 정렬한다.
  • arr1 값을 기준으로 반복문을 돌려준다.
  • i값과 비교할 때, arr2의 처음 값부터 비교하는 것이 아닌 arr1에서 i값 이전 index 원소가 끝난 값부터 비교하면 된다. (arr1도 오름차순으로 되어있기 때문에, 무조건 현재 i 값보다 이전 값이 더 작기 때문 + 이전 index값보다 작은 arr2의 값도 마찬가지로 i보다 작을 수 밖에 없다.)
profile
パㅔバ6ㅇr 덤벼ㄹΓ :-0

0개의 댓글