[백준] 하루5문제(25.01.28)

HAHAHELLO·2025년 1월 28일

파이썬

목록 보기
11/50

1차원 배열

최소, 최대 : 10818

문제

예제

나의 풀이

n, x = map(int, input().split())
a = list(map(int,input().split()))

for i in a:
    if int(i) < x:
        print(i, end=' ')

다른 풀이

리스트 컴프리헨션join을 사용한 보다 효율적인 코드를 찾았다. 리스트 컴프리헨션을 사용할 수 있도록 연습이 필요할 것 같다.

a,b = map(int,input().split())
score = [x for x in input().split() if int(x)<b]
print(' '.join(score))

최댓값 : 2562

문제

예제

나의 풀이

a_list = []
for i in range(9):
    a = int(input())
    a_list.append(a)
    
print(max(a_list))
print(a_list.index(max(a_list))+1)

공 넣기 : 10810

문제

예제

나의 풀이

아이디어는 풀이에 맞았는데 print에서 join이 str 형태의 리스트에만 적용이 된다는 것을 잠시 잊고 헤맸다.

n, m = map(int, input().split())
answer = [0] * n # n의 크기로 초기화
for _ in range(m):
    i,j,k = map(int, input().split())
    for idx in range(i,j+1):
        answer[idx-1] = k

print(' '.join(map(str,answer)))

끄적끄적

index()

index()는 배열에서 값의 위치를 찾아주는 함수이며, 중복된 값이 있으면 가장 먼저 나온 값의 위치를 출력한다. 문자열, 리스트, 튜플 자료형에서 사용 가능하다.

index()와 find()의 차이점

  • 찾는 문자가 없는 경우: index()ValueError가 발생하고 find()-1을 반환한다.
  • 사용가능한 자료형: index()는 문자열, 리스트, 튜플에서, find()는 문자열에서만 사용이 가능하다.

예시

# index()
a = 'abcdab'
print(a.index('a')) # 0
print(a.index('c')) # 2
print(a.index('bcd')) # 1
print(a.index('a', 2)) # 4
print(a.index('a', 2, 5)) # 4
# print(a.index('a', 2, 4)) # 에러 발생!!

# 리스트에서도 사용 가능
b = [1, 2, 3]
print(b.index(2)) # 1   

# 튜플에서도 사용 가능
c = ('a', 'b', 'c', 'd')
print(c.index('c')) # 2

# find()
a = 'abcdab'
print(a.find('a')) # 0
print(a.find('c')) # 2
print(a.find('bcd')) # 1 => 문자열의 위치를 찾을 수도 있음
print(a.find('a', 2)) # 4 => 시작점만 지정한 경우
print(a.find('a', 2, 5)) # 4 => 시작점과 끝점을 지정한 경우
print(a.find('a', 2, 4)) # -1 => 찾는 문자가 없는 경우 -1 반환
 

join()

join()구분자.join(리스트)의 형식으로 활용하는, 리스트를 문자열로 반환해주는 함수이다. join()은 기본적으로 문자열로 이루어진 리스트에서만 사용 가능하므로 정수형으로 이루어진 리스트에서 사용하려면 map()을 활용하여 문자열로 바꿔 줘야 한다.

profile
데이터 엔지니어가 되어 봅시다 🌈

0개의 댓글