1 분 소요

1. 배열이란?

  • 데이터를 나열하고, 각 데이터를 인덱스에 대응하도록 구성한 데이터 구조
  • 파이썬에서는 리스트 타입이 배열 기능을 제공함

2. 배열은 왜 필요할까?

  • 같은 종류의 데이터를 효율적으로 관리하기 위해 사용
  • 같은 종류의 데이터를 순차적으로 저장
  • 장점:
    - 빠른 접근 가능:
    첫 데이터의 위치에서 상대적인 위치로 데이터 접근(인덱스 번호로 접근)
  • 단점:
    - 데이터 추가/삭제의 어려움:
    미리 최대 길이를 지정해야 하고, 특정 데이터 삭제 후에 뒤에 있는 데이터를 앞으로 밀어야 한다.

3. 파이썬과 배열

  • 파이썬에서는 리스트로 배열 구현 가능

스크린샷 2022-09-06 오후 3 41 33

4. 프로그래밍 연습

# 아래 dataset 리스트에서 전체 이름 안에 M 은 몇 번 나왔는지 빈도수 출력하기
dataset = ['Braund, Mr. Owen Harris',
'Cumings, Mrs. John Bradley (Florence Briggs Thayer)',
'Heikkinen, Miss. Laina',
'Futrelle, Mrs. Jacques Heath (Lily May Peel)',
'Allen, Mr. William Henry',
'Moran, Mr. James',
'McCarthy, Mr. Timothy J',
'Palsson, Master. Gosta Leonard',
'Johnson, Mrs. Oscar W (Elisabeth Vilhelmina Berg)',
'Nasser, Mrs. Nicholas (Adele Achem)',
'Sandstrom, Miss. Marguerite Rut',
'Bonnell, Miss. Elizabeth',
'Saundercock, Mr. William Henry',
'Andersson, Mr. Anders Johan',
'Vestrom, Miss. Hulda Amanda Adolfina',
'Hewlett, Mrs. (Mary D Kingcome) ',
'Rice, Master. Eugene',
'Williams, Mr. Charles Eugene',
'Vander Planke, Mrs. Julius (Emelia Maria Vandemoortele)',
'Masselmani, Mrs. Fatima',
'Fynney, Mr. Joseph J',
'Beesley, Mr. Lawrence',
'McGowan, Miss. Anna "Annie"',
'Sloper, Mr. William Thompson',
'Palsson, Miss. Torborg Danira',
'Asplund, Mrs. Carl Oscar (Selma Augusta Emilia Johansson)',
'Emir, Mr. Farred Chehab',
'Fortune, Mr. Charles Alexander',
'Dwyer, Miss. Ellen "Nellie"',
'Todoroff, Mr. Lalio']

cnt=0
for x in dataset:
    if "M" in x: # x 안에 M이 1개 있든 2개 있든 무조건 cnt+=1
        cnt+=1
print(cnt) # 오답

cnt=0
for x in dataset:
    for i in range(len(x)): # 2차원 배열 요소 하나하나 접근해야 함
        if x[i]=="M":
            cnt+=1
print(cnt) # 정답
코드 이미지

스크린샷 2022-09-06 오후 3 42 32

이때, 첫번째 풀이처럼 in 문법을 사용하면 오답이 된다.
이유는 in은 해당 문자열 안에 특정 문자가 “포함되어 있는지/없는지”만 판별하지,
있다면 몇 개 있는지는 판별할 수 없기 때문이다.

따라서 두번재 풀이처럼 2차원 배열의 요소 하나하나에 접근하여 개수를 세야한다.



💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기