본문 바로가기

programming study/Algorithm

(275)
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (7)(2021.1.27) 본 내용은 해당 강의 토대로 작성 1. 회문 문자열 검사 문제 해설 문자열 비교는 그 길이의 반만큼 하면 된다. python의 index는 -로 접근할 수 있다 0 1 2 3 4 L E V E L -5 -4 -3 -2 -1 문제 풀이 import sys sys.stdin = open("in5.txt", "rt") n = int(input()); for i in range(n): str = input(); # 문자열 입력받기 str = list(str.lower()); # 문자열을 소문자화 후 리스트화 revStr = []; # 뒤집은 문자열을 넣을 변수 for j in range(len(str) - 1, -1, -1): # 뒤집은 문자열 넣기 revStr.append(str[j]); if str == r..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (6)(2021.1.26 ~ 27) 본 내용은 해당 강의 토대로 작성 1. 자릿수의 합 문제 풀이 n = int(input()); # 입력 받기 a = list(map(int, input().split())); # 입력 받기 def digit_sum(x): # 자릿수의 합을 구하는 함수 정의 x = str(x); # 문자열로 변환 b = []; # 빈 배열 만들기 for i in x: # 각 자리의 숫자 뽑아내기 i = int(i); # 다시 정수로 변환 b.append(i) # 배열 b에 저장 return sum(b); # 각 요소의 합을 return max = 0 maxIndex = 0 for index, value in enumerate(a): # 배열 a의 index와 value를 각각 저장 if max < digit_sum(val..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (5)(2021.1.25) 본 내용은 해당 강의 토대로 작성 1. K번째 큰 수 문제 풀이 n, k = map(int, input().split()); # n, k 입력받기 arr = list(map(int, input().split())); # arr에 카드값 받기 arr.sort(reverse=True); # 내림차순으로 정렬 sumArr = arr[0] + arr[1] + arr[k+1]; # K번째로 큰 수 구하기 print(sumArr); 문제 해설 중복된 값은 카운트하지 않는다. 내침차순 정렬을 한다. 중복을 제거하기 위해서 set 자료구조를 사용한다. 문제 답안 n, k = map(int, input().split()); # n, k 입력받기 a = list(map(int, input().split())); # a에 ..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (4)(2021.1.24) 본 내용은 해당 강의 토대로 작성 1. K번째 약수 문제 풀이 n, k = map(int, input().split()); # 두 개의 정수를 공백을 구분으로 입력 받기 arr = []; # 약수를 받을 배열 초기화 for i in range (1, n+1): # 1부터 n까지 약수 찾기 if n % i == 0: arr.append(i) # 약수인 경우 배열에 넣기 if len(arr) < k : # 약수의 개수가 k보다 작으면 -1 출력 print(-1); else: # k번째 약수 출력하기 print(arr[k-1]); 문제 해설 입력을 받으면 문자열로 들어오므로 정수화하기 (map함수) 약수를 찾았을 때 마다 카운팅하기 문제 답안 n, k = map(int, input().split()); # 입..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (3)(2021.1.23) 본 내용은 해당 강의 토대로 작성 파이썬 기초 문법 1. 문자열과 내장함수 문자열 내장 함수 msg = "It is Time"; print(msg.upper()); # 대문자화 # IT IS TIME 출력 print(msg.lower()); # it is time tmp = msg.upper(); # 대문자화된 변수가 입력된다. print(tmp.find('T')); # T를 찾아 index를 return print(tmp.count('T')); # T가 몇개 있는지 센다. print(msg[:2]); # 슬라이스. 처음부터 index 2번 전 까지인 It을 뽑아낸다. print(msg[3:5]); # 3번부터 4번까지 is 출력 print(len(msg)); # 문자열의 길이를 구한다. 문자열에서, 공..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (2)(2021.1.23) 본 내용은 해당 강의 토대로 작성 파이썬 기초 문법 # 1. 반복문(for, while, break, continue) range 순차적으로 정수 리스트를 만든다. a = range(10); # 순차적으로 0~9까지 정수 리스트를 만든다 print(list(a)); # a를 리스트 자료형으로 출력 ---------------------------------------------------------- a = range(1, 10); # 1~9 print(list(a)); for for i in rage(시작, 끝, 간격): ​ 반복할 명령어 range 함수와 같이 사용 반복할 구문을 들여쓰기한다. for i in range(10): # 0~9동안 반복(10번) print("hello"); # hello ..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (1)(2021.1.22) 본 내용은 해당 강의 토대로 작성 파이썬 기초 문법 1. 변수와 출력함수 영문과 숫자, _로 이루어진다. 대소문자를 구분한다. 문자나, _로 시작한다. 특수문자를 사용하면 안된다.(&, % 등) 키워드를 사용하면 안된다.(if, for 등) 대입연산자 =로 값 대입한다. 동시 변수 선언 변수 여러개를 동시 선언할 수 있다. a, b, c =3, 2, 1 print(a, b, c) # 3, 2, 1 출력 값 교환 a, b = 10, 20 print(a, b) a, b=b, a print(a, b) ''' 10 20 20 10 출력 ''' 변수 타입 정수형(int) : 메모리 한도까지 들어갈 수 있다. a = 12345 print(type(a)) # 출력 실수형(float) : 8바이트 용량까지 저장 가능,..
[동빈나]이코테 2021 강의 몰아보기 (18)(2021.1.21) 본 내용은 해당 강의 토대로 작성 자료구조: 바이너리 인덱스 트리(Binary Indexed Tree, BIT, 펜윅 트리) 데이터 업데이트가 가능한 상황에서의 구간 합 (Interval Sum) 문제 BOJ '구간 합 구하기' 문제: https://www.acmicpc.net/problem/2042 N개의 수가 주어져 있다. 중간에 수의 변경이 빈번히 일어나고 그 중간에 어떤 부분의 합을 구하려 한다. 예를 들어, 1, 2, 3, 4, 5 라는 수가 있고 3번째 수를 6으로 바꾸고 2번째부터 5번째까지 합을 구하면 17이 출력된다. 데이터 개수: N(1