Daily note

Today I Learned(TIL)-25

Jun.o 2024. 7. 28. 19:04

 

------------------------------------- 오늘의 학습 키워드 --------------------------------------

스택/큐

스택 : 후입선출(LIFO, Last In First Out) 원칙을 따릅니다. 즉, 가장 나중에 삽입된 요소가 가장 먼저 제거

          일상적인 물건의 쌓아 올리기와 같은 방식으로 데이터를 처리

 

  • 푸시(push): 스택의 상단에 요소를 추가합니다.
  • 팝(pop): 스택의 상단에서 요소를 제거하고 반환합니다.
  • 피크(peek) 또는 탑(top): 스택의 상단에 있는 요소를 반환하지만, 제거하지는 않습니다.
  • 비어있는지 확인(is_empty): 스택이 비어 있는지 여부를 확인합니다.

큐 : 데이터 구조 중 하나로, 선입선출(FIFO, First In First Out) 원칙을 따릅니다. 큐는 일상적인 대기 줄이나 처리 대기

     목록과 같은 개념을 모델링하는데 유용

 

  • 인큐(enqueue): 큐의 끝에 요소를 추가합니다.
  • 디큐(dequeue): 큐의 앞에서 요소를 제거하고 반환합니다.
  • 피크(peek) 또는 프론트(front): 큐의 앞에 있는 요소를 반환하지만, 제거하지는 않습니다.
  • 비어있는지 확인(is_empty): 큐가 비어 있는지 여부를 확인합니다

 

 

 

-------------------------- 공부한 내용 본인의 언어로 정리하기 --------------------------

 

'''
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다.
이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다.
 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,

arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.

제한사항
배열 arr의 크기 : 1,000,000 이하의 자연수
배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수
'''

 

 

1. for문을 이용하여 arr의 매개변수를 설정하고 반복해준다

2. answer 값이 i안에 없을 경우 

3. i값을 answer에 추가하고

4. answer값을 반환한다.

 

  -------------------- 어떤 문제가 있었고, 나는 어떤 시도를 했는지 -------------------

 

 

테스트 통과가 1은 안되는데 2테스트는 통과됨.

이건 분명 어디 선가 출력이 잘못되는것임. 함수 설정을 잘못해준거라고 생각됨.

 

  ----------------------------------- 어떻게 해결했는지 ----------------------------------------

 

 

 

 

 

if answer[-1:] == [i]: continue: answer 이걸 사용해서 풀었따.

 

  --------------------------------- 무엇을 새롭게 알았는지 -----------------------------------

  1. for i in arr:: arr 리스트의 각 요소를 i라는 변수에 담아 반복
  2. if answer[-1:] == [i]: continue: answer 리스트의 마지막 요소와 현재 반복 중인 i가 동일한지 비교

여기서 answer[-1:]는 answer 리스트의 마지막 요소를 단일 요소 리스트로 반환합니다. 예를 들어, answer가 [5, 6, 7]이라면 answer[-1:]는 [7]이 됩니다.

따라서, 이 조건문은 answer 리스트의 마지막 요소가 현재 반복 중인 i와 같다면, 현재 반복을 건너뛰고 다음 요소로 넘어가게 합니다 (continue는 현재 반복을 종료하고 다음 반복으로 이동합니다).

  -------------------------------- 내일 학습할 것은 무엇인지 ---------------------------------

 

1. 프로그래머스 문제풀기

2. 개인과제 하기

3. 스쿼드 집중하기!!!!

 

'Daily note' 카테고리의 다른 글

Today I Learned(TIL)-27  (0) 2024.07.30
Today I Learned(TIL)-26  (0) 2024.07.29
Today I Learned(TIL)-24  (0) 2024.07.27
Today I Learned(TIL)-23  (0) 2024.07.26
Today I Learned(TIL)-22  (0) 2024.07.25