1. 회문(回文; palindrome)
    1. 순서대로 읽어도 거꾸로 읽어도 그 내용이 같은 낱말이나 문장
    1. 설명
      1. 큐(queue)는 ‘줄 서기’에 비유할 수 있음
      2. 택시를 타기 위해서 줄을 서는 과정을 떠올려 보자
      3. 새로 택시 정류장에 도착한 사람은 맨 뒤로 가서 줄을 서고, 택시가 도착하면 그 줄의 맨 앞에 선 사람이 줄을 빠져나가 택시를 탐
      4. 가장 먼저 줄을 선 사람이 가장 먼저 택시를 타게 됨
      5. FIFO(First In First Out)
    2. 동작
      1. 인큐(enqueue): 큐에 자료를 한 개 집어넣는 동작
      2. 디큐(dequeue): 큐 안에 있는 자료를 한 개 꺼내는 동작
  2. 스택
    1. 설명
      1. 스택(stack)은 ‘접시 쌓기’에 비유할 수 있음
      2. 식당에서 접시를 차곡차곡 쌓았다가 하나씩 꺼내 설거지하는 과정을 생각해 보자
      3. 다 먹은 접시를 쌓을 때는 쌓은 접시 맨 위에 올려놓음
      4. 설거지하려고 접시를 꺼낼 때도 맨 위에 있는 접시부터 꺼냄
      5. 가장 마지막에 들어간 자료를 가장 먼저 꺼내는 것을 의미
      6. 맨 아래에 있는 접시를 꺼내려면 맨 위에 있는 접시부터 하나하나 꺼내야 함
      7. LIFO(Last In First Out)
    2. 동작
      1. 푸시(push): 스택에 자료를 하나 집어넣는 동작
      2. 팝(pop): 스택 안에 있는 자료를 하나 꺼내는 동작
  3. 회문 판단 알고리즘

    1. isalpha() 함수는 주어진 문자가 알파벳 문자에 해당하는지 확인하는 기능
    2. 공백, 숫자, 특수문자는 isalpha() 함수로 걸러 냄
    3. lower() 함수는 주어진 알파벳을 소문자로 바꾸는 기능
    4. 문자를 모두 소문자로 바꿔 큐와 스택에 추가하므로 대문자와 소문자를 구분하지 않고 회문인지 아닌지 판단할 수 있음
  4. 문자열 앞뒤를 서로 비교하는 회문 판단 알고리즘

     
error: Content is protected !!