boj 11728 배열합치기(실버5)

김준오·2021년 8월 14일
0

알고리즘

목록 보기
27/91
post-thumbnail

boj 11728 배열합치기

투포인터 문제가 요즘 많이나온다고 해서 연습해보려고한다.

거의 안풀어본 유형이라서 익혀두려고 일부로 분류군에서 투포인터로 찾아서 제일 간단해보이는거 하나 했다

문제가 짧아서 끌렸다 ㅎㅎ.. 난이도는 근데 너무 쉬웠던것같다

내풀이

import sys
input = sys.stdin.readline

n,m = map(int,input().split())

a = list(map(int,input().split()))
b = list(map(int,input().split()))

i = 0
j = 0
c = []

while(i < n and j < m):
  if a[i] <= b[j]:
    c.append(a[i])
    i += 1

  else :
    c.append(b[j])
    j += 1


if i == n :
  c.extend(b[j:])

else :
  c.extend(a[i:])

print(' '.join(str(k) for k in c))

이미 정렬된 배열이므로
두 배열에 각각 포인터 하나씩 놓고 올려가면서 체크했다

다른풀이

import sys
input = sys.stdin.readline

n,m = map(int,input().split())

a = list(map(int,input().split()))
b = list(map(int,input().split()))

c = a+b
c.sort()

print(' '.join(str(k) for k in c))

근데 구지 직접 포인팅 해줄 필요도 없더라..

괜히 투포인터 하려고 그거로만 생각하다보니깐 오히려 사고가 막힌것같다

그냥 더하고 정렬해줘도 된다!

공부한것

''.join(arr) 은 arr이 str 형이 아니면 에러가 난다
따라서
''.join(str(k) for k in arr)
이런식으로 형변환 해서 쓰거나

''.join(map(str,arr))

이렇게 쓰면 된다!

끝!

결과

profile
jooooon

0개의 댓글

관련 채용 정보