18_자료구조 문제풀이 & 알고리즘(1)

ryu·2023년 5월 25일
0

튜플(04)

fruits = [{'수박': 8}, {'포도': 13}, {'참외':12}, {'사과': 17}, {'자두': 19}, {'자몽': 15}]
fruits.sort(key=lambda x: list(x.values())[0])
print(fruits)	# [{'수박': 8}, {'참외': 12}, {'포도': 13}, {'자몽': 15}, {'사과': 17}, {'자두': 19}]

딕셔너리(03)

words = {'꺼지다': '가다',
'쩔다': '엄청나다',
'짭새': '경찰관',
'꼽사리': '중간에 낀 사람',
'먹튀': '먹고 도망',
'지린다': '겁을 먹다',
'쪼개다': '웃다',
'뒷담 까다': '험담하다'}

sentence = '강도는 서로 쪼개다, 짭새를 보고 빠르게 따돌리며 먹튀했다.'

for key in words.keys():
    if key in sentence:
        sentence = sentence.replace(key, words[key])

print(sentence)	# 강도는 서로 웃다, 경찰관를 보고 빠르게 따돌리며 먹고 도망했다.

알고리즘

선형검색

선형검색이란?

  • 선형으로 나열되어 있는 데이터를 순차적으로 스캔하면서 원하는 값을 찾음
  • 인덱스 0부터 순차적으로 검색

보초법

  • 마지막 인덱스에 찾으려는 값을 추가하고, 발견된 위치가 맨 마지막이면 찾을 수 없는 것으로 판단하여 과정을 간략화

이진검색

이진검색이란?

  • 정렬되어 있는 자료구조에서 중앙값과의 크고 작음을 이용해서 데이터를 검색

순위

순위란?

  • 수의 크고 작음을 이용해서 수의 순서를 정하는 것

버블정렬

버블정렬이란?

  • 처음부터 끝까지 인접하는 인덱스의 값을 순차적으로 비교하면서 큰 숫자를 가장 끝으로 옮기는 알고리즘

    for i in range(N):
      	for j in range(N-1):
          	if nums[j] > nums[j+1]:
            		nums[j], nums[j+1] = nums[j+1], nums[j]

삽입정렬

삽입정렬이란?

  • 정렬되어 있는 자료 배열과 비교해서 정렬 위치를 찾음
  • 요소를 순차적으로 선택하면서, 그 요소를 이미 정렬되어 있는 앞부분의 어디에 삽입하면 되는지를 찾는 방법

0개의 댓글