첫 날 학습 플랜
- 파이썬 복습 및 몇 문제 건들여보기.
- 당산 스튜디오 인터뷰 첫 번째 질문 답하기
- 코딩 인터뷰 동영상 강의 신청
1. python 복습- 백준 단계별로 문제 풀이 시작.
자료형 + 복습 / 단게별 백준 문제로 감잡기.
숫자형 -> 정수형 / 실수형
(a = 4.24e10 이 말은 4.24*(10의10승)을 의미)
8진수 -> 0o 또는 0O (숫자 0 + 알파벳 소문자 o) 16진수 -> 0x
복소수 1+2j j를 사용
복소수.real -> 복소수의 실수 부분 리턴 / 복소수.imag -> 복소수의 허수부분 리턴 / 복소수.conjugate() 복소수의 켤레복소수를 리턴
abs(복소수) -> 복소수의 절댓값 리턴
(파이썬 2.7에서는 정수형 끼리 나눌 떄 정수형만 결과값 리턴. 따라서 강제로 실수로 형변환을 해줘야 한다.)
*연산자 -> x*y 라면 x의 y제곱값을 리턴한다. % -> 나머지 반환하는 연산자.
//나눗셈 후 소숫점 아랫자리를 버리는 연산자
` 7/4 1.75 `
7//4 1
문자열
문자열 만드는 방법 3가지 -> (1) 큰 따옴표 (2) 작은 따옴표 (3) 큰따옴표 3개 연속으로 둘러싸기 (4) 작은 따옴표 3개 연속으로 둘러싸기
\를 사용하면 작은따옴표와 큰따옴표를 문자열에 포함시킬 수 있다. 백슬래시를 작은따옴표나 큰따옴표 앞에 삽입하면 기호의 의미가 아니라 문자 그자체가 됌.
줄 바꾸는 코드 -> escape 코드 ‘\n’
** 따옴표 연속해서 3개 쓰면 이스케이프 코드 삽입 없이 문자열 여러 줄 출력가능 **
** 문자열 가지고 더하기 곱하기도 가능 **
문자열 인덱싱과 슬라이싱
** 문자열 인덱싱이란 문자열 내 특정한 값을 뽑아내는 역할.** 뒤에서 부터 읽기 위해선 마이너스 기호를 붙이면 된다.
문자열 슬라이싱 -> 문자열 내 단어로 뽑아냄
문자열 포매팅 : 문자열 내에 어떤 값을 삽입하는 방법
그래서 파이썬에서 input을 어떻게 받는데?
input을 사용하면 된다.
a=input()
근데 input은 다 문자열로 받아지니까. int를 앞에 붙여서 형변환 뒤 숫자형으로 받는게 좋다.
그런데 백준 1000번을 보면 a+b를 한 줄에 입력 받아야 한다. 그럴 때 map을 사용한다.
map(i,iterable)은 함수(f)와 반복가능한(iterable) 자료형을 입력으로 받는다. map은 입력 받은 자료형의 각 요소가 함수 f에 의해 수행된 결과를 묶어서 리턴하는 함수다.
split은 무슨 함수? ()의 문자를 기준으로 문자열을 나눠줌. ()이 비어있으면 공백을 기준으로 문자열을 나눔
배열과 리스트의 차이
- 배열은 정의와 길이를 지정하며 바꿀 수 없다.
- 배열의 인덱스는 값에 대한 유일무이한 식별자다.
-
데이터에 대한 인덱스의 값이 고정되므로 삭제시 데이터 공간이 그대로 남는다.
- 리스트의 핵심은 엘리먼트들 간의 순서. 순서가 있는 데이터의 모임이 리스트다.
- 리스트에서 인덱스는 몇 번쨰 데이터인가 정도의 의미를 가진다.
- 빈 엘리먼트는 허용하지 않는다.
- 리스트의 기능 : 처음 끝 중간에서 엘리먼트 삭제 기능, 리스트에 데이터가 있는지 체크하는 기능, 리스트의 모든 데이터에 접근할 수 있는 기능
백준 문제 푼 거 정리
기본 입출력 - 2557 - 출력하기 / 1000 - 한 줄에 입력받아 출력하기 / 10718 - 두번 출력 / 10430 - 나머지
for 문 사용해보기
**while <조건문>: **조건문>
for 변수 in f리스트(튜플,문자열):
N찍기 - 2741 (python에서는 ++이 없다. +=, -=)/ 기찍 N - 2742 구구단 - 2739
파이썬은 for 문을 돌 때, range와 함께 쓴다. range는 숫자 리스트를 자동으로 만들어준다. range(0,10) 0부터 10미만
15552번 -빠른 문제 풀기 참고
https://www.acmicpc.net/blog/view/55
python을 사용중이라면, input 대신에 sys.stdin.readline을 사용할 수 있다. 단 이 떄는 맨 끝의 개행문자 까지 같이 입력받기 때문에 문자열을 저장하고 싶은 경우 .rstrip()을 추가로 해주는 것이 좋다. (지정된 문자열의 끝을 삭제한다)
import sys
a = int(sys.stdin.readline())
while a > 0:
b, c = map(int, sys.stdin.readline().split())
print(b+c)
a -= 1
참고자료
배열과 리스트의 차이 : https://wayhome25.github.io/cs/2017/04/17/cs-18-1/