아이디어지니
아이디어지니 : 개발이야기
아이디어지니
전체 방문자
오늘
어제
  • 분류 전체보기 (26)
    • 안드로이드 (11)
    • 50자다이어리 (2)
    • 코딩테스트 (13)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • null check
  • greenDAO
  • 바인딩 서비스
  • 파이썬
  • Interpolator
  • TextView
  • deprecated
  • 안드로이드
  • 커스텀정렬
  • functools
  • 에라토스테네스의 체
  • 패스트캠퍼스
  • 안드로이드 애니메이션
  • 1181
  • 내일배움카드
  • TextUtils
  • cmp_to_key
  • andorid
  • setrecursionlimit
  • 앱재시작
  • 단어정렬
  • 나도 할 수 있는 Java&Spring 웹 개발 종합반
  • App Restart
  • 백준
  • null
  • 안드로이드 서비스
  • K디지털기초역량훈련
  • 코딩테스트
  • jcenter
  • onStartCommand

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
아이디어지니

아이디어지니 : 개발이야기

코딩테스트

이코테 4강 리뷰 (문자열, 튜플 자료형)

2022. 5. 13. 14:58

문자열 자료형

- 문자열 변수를 초기화 할 때는 큰따옴표(")나 작은따옴표(')를 이용한다.

- 문자열 안에 큰 따옴표나 작은 따옴표가 포함되어야 하는 경우 :

1. 전체 문자열을 " " 로 구성한 경우 : 작은 따옴표를 이스케이프 문자형태(백슬래시[\]) 없이 사용 가능, 큰 따옴표는 백슬래시(\)붙여서 가능

예) a = " '공자'가 말했다. \"문구\" "

2. 전체 문자열을 ' ' 로 구성한 경우 : 큰 따옴표를 이스케이프 문자형태(백슬래시[\]) 없이 사용 가능, 작은 따옴표는 백슬래시(\)붙여서 가능

예) a = ' \'맹자\'가 말했다. "문구" '

 

문자열 연산

- 문자열 변수에 뎃셈(+)을 이용하면 문자열이 더해져 연결(Concatenate)된다.

- 문자열 변수를 양의 정수와 곱하면 문자열이 여러번 더해진다.

- 문자열로 인덱싱과 슬라이싱을 할 수 있다.

- 특정 인덱스의 값을 변경할 수는 없다. -> 불변(Immutable) 속성

a = "hello"
b = "world"
print(a+b) # hello world 출력
print (a*3) # hellohellohello 출력

# 인덱싱
print(a[2:4]) # ll출력

# 인덱싱으로 값을 변경할 수 는 없음
a[2] = 'a' # TypeError발생

# 문자열 길이
len(a)

# 대, 소문자
a.upper() # 대문자
a.lower() # 소문자
a.swapcase() # 상호전환
a.isupper() <-> a.islower() # 구분

# join으로 리스트 문자열 연결
print("\n".join([a,a]))
# int형 의 경우 아래와 같이 str로 변환해줘도 괜찮을 듯 하다.
a = [1, 2, 3, 4]
print("".join(map(str, a)))

문자열 뒤집는 3가지 방법

- Slice

slicing 을 이용해 [start:stop:step] 간단히 문자열을 뒤집을 수 있다.

# apple[start:stop:step]
reversed_str = apple[::-1] # 반대로 출력

- For Loop

for문을 이용해 string 객체를 뒤집을 수 있다.

for i in string:
    reversed_str = i + reversed_str

- Join Reverse

reversed() 메소드는 반대방향으로 순회하는 iterator 객체를 반환한다. join을 이용해 reverse된 해당 객체를 문자열 객체로 만들 수 있다.

string = 'Hello'
print(reversed(string))
<reversed object at 0x7f687c1b95b0> # console 반환 결과

reversed_str = "".join(reversed(string)) # olleH를 반환한다.

출처 : https://codechacha.com/ko/python-reverse-string/

 

Python - 문자열 뒤집기, 문자열 거꾸로 출력

문자열을 뒤집는 방법을 소개합니다. 문자열을 뒤집는다는 의미는 다음과 같이 Original 문자열의 마지막에서 처음 순서로 출력한다는 의미입니다. slice를 이용하면 매우 쉽게 String을 뒤집을 수

codechacha.com

 

문자열 Format

- 문자열의 정렬(문자열이 지정한 n개의 공간을 초과한다고 해서 잘리는 것은 아니며 삐뚤어 질 뿐임)

str.ljust(n, 'c') = 문자의 공간을 n만큼 부여하고 좌측부터 문자열를 채우고 남으면 공백은 c로 채운다. 

str.center(n, 'c') = 문자의 공간을 n만큼 부여하고 가운데부터 문자열을 채우고 남으면 공백은 c로 채운다

str.rjust(n, 'c') = 문자의 공간을 n만큼 부여하고 좌측부터 문자열를 채우고 남으면 공백은 c로 채운다. 

* 표를 예뻐 보이게 작성할 때 사용하면 좋음, 백준 9654, 2442에 응용 가능

 

문자열 찾기

- Find

str.find(문자, 시작 Index, 끝 Index)는 결과 값으로 찾는 문자의 index를 반환하며 결과가 없을 경우 -1을 반환한다. 중복의 경우 가장 가까운 index가 반환된다.

str = 'APPLEA'
print(str.find('A')) # 0 반환
print(str.find('A', 1)) # 5 반환
print(str.find('A', 1, 2)) # -1 반환

 

튜플 자료형

- 리스트와 유사하나 한번 선언된 값은 변경할 수 없음

- 소괄호()를 이용해 초기화

- 리스트에 비해 기능이 제한적이므로 상대적으로 공간 효율적(메모리 소비 적음)

a = (1, 2, 3, 4, 5, 6)

# 인덱싱은 리스트와 같음
print(a[3]) # 4 출력

# 그러나 값 변경은 불가
a[3] = 3 # TypeError 발생

 

튜플을 사용면 좋은 경우

- 서로 다른 성질의 데이터를 묶어서 관리할 때 : 최단 경로 알고리즘에서는 (비용, 노드 번호)의 형태로 자주 사용함

- 데이터의 나열을 해싱(Hashing)의 키 값으로 사용해야 할 때 : 튜플은 변경이 불가능 해 리스트와 다르게 키 값으로 사용될 수 있음

- 리스트보다 메모리를 효율적으로 사용해야 할 때

 

본 글은 나동빈 - 이코테 2021 강의 몰아보기를 토대로 작성한 정리입니다. 

좋은 강의를 올려주신 나동빈님께 감사드립니다.

또한 코딩테스트 문제를 풀면서 필요한 부분들을 추가하고 있어 강의내용과 다를 수 있습니다!

'코딩테스트' 카테고리의 다른 글

이코테 6강 리뷰 (기본 입출력)  (0) 2022.05.17
이코테 5강 리뷰 (사전, 집합 자료형)  (0) 2022.05.13
이코테 3강 리뷰 (리스트 자료형)  (0) 2022.05.12
이코테 2강 리뷰 (수 자료형과 연산)  (0) 2022.05.10
    '코딩테스트' 카테고리의 다른 글
    • 이코테 6강 리뷰 (기본 입출력)
    • 이코테 5강 리뷰 (사전, 집합 자료형)
    • 이코테 3강 리뷰 (리스트 자료형)
    • 이코테 2강 리뷰 (수 자료형과 연산)
    아이디어지니
    아이디어지니
    할까 말까 할 때는 하라

    티스토리툴바