본문 바로가기

Python

(67)
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (10)(2021.1.31) 본 내용은 해당 강의 토대로 작성 1. 마구간 정하기(결정알고리즘) 문제 해설 입력받은 마굿간을 오름차순으로 정렬하기 주어진 조건하에, 가장 가까운 두 말의 최대거리를 이분 검색으로 찾기 첫 번째 말은 무조건 첫 번째 마굿간에 넣기 문제 풀이 def Count(mid): cnt = 1; # 카운트 h = a[0]; # 말을 놓은 곳 for i in range(1, n): if a[i] - h >= mid: cnt += 1; # 말 배치 h = a[i]; return cnt; n, c = map(int, input().split()); a = []; for _ in range(n): x = int(input()); a.append(x); a.sort(); s = 1; e = a[n - 1]; while s..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (8)(2021.1.28 ~ 29) 본 내용은 해당 강의 토대로 작성 1. 격자판 최대합 문제 해설 2차원 배열 문제 문제 풀이 import sys sys.stdin = open("in5.txt", "rt") n = int(input()); arr = [list(map(int, input().split())) for _ in range(n)]; # 2차원 리스트로 입력 받기 arrSum = 0 ; # 합 maxSum = 0; # 최대합 for i in range(n): # 각 행의 합 최대 구하기 for j in range(n): arrSum += arr[i][j]; if maxSum < arrSum: maxSum = arrSum; arrSum = 0; for i in range(n): # 각 열의 합 최대 구하기 for j in rang..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (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..
[인프런 - 김태원] 파이썬 알고리즘 문제풀이 (코딩테스트 대비) (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 강의 몰아보기 (17)(2021.1.21) 본 내용은 해당 강의 토대로 작성 벨만 포드 알고리즘 1. 음수 간선인 포함된 상황에서의 최단 거리 문제 BOJ '타임머신' 문제 : https://www.acmicpc.net/problem/11657 N개의 도시가 있다. 한 도시에서 출발하여 다른 도시에 도착하는 버스가 M개 있다. 각 버스는 A, B, C로 나타낼 수 있는데, A는 시작도시, B는 도착도시, C는 버스를 타고 이동 시간이다. 시간 C가 양수가 아닌 경우가 있다. C = 0인 경우는 순간 이동을 하는 경우, C < 0 인 경우는 타임머신으로 시간을 돌아가는 경우이다. 1번 도시에서 출발해서 나머지 도시로 가는 가장 빠른 시간을 구하는 프로그램을 작성하라. 도시의 개수: N(1
[동빈나]이코테 2021 강의 몰아보기 (14)(2021.1.17) 본 내용은 해당 강의 토대로 작성 개발형 코딩 테스트 정해진 목적에 따라서 동작하는 완성된 프로그램을 개발하는 것을 요구하는 코딩 테스트 유형 일부 기업은 해커톤을 통해 채용을 진행 해커톤(Hackathon) : 단기간에 아이디어를 제품화하는 프로젝트 이벤트 1~2일 진행 분야에 따라 상세 요구사항이 다르다. 모바일 클라이언트 개발 : 안드로이드, iOS 앱 개발 웹 서버 개발 : 스프링(Spring), 장고(Django) 등의 서버 개발 프레임워크 활용 분야에 상관없이 꼭 알아야 하는 개념과 도구는 학습해야 한다. 서버, 클라이언트, JSON, REST, API, … 서버와 클라이언트 클라이언트가 요청(Request)을 보내면 서버가 응답(Response)한다. 웹 클라이언트 웹 서버 PC 워크스테이션..
[동빈나]이코테 2021 강의 몰아보기 (13)(2021.1.16) 본 내용은 해당 강의 토대로 작성 기타 알고리즘 1. 소수 (Prime Number) 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 자연수로는 나누어 떨어지지 않는 자연수 코딩 테스트에서 어떤 자연수가 소수인지 아닌지를 판별해야 하는 문제 자주 출제 기본적인 알고리즘 # 소수 판별 함수(2 이상의 자연수에 대하여) def is_prime_number(x): # 2부터 (x - 1)까지의 모든 수를 확인하며 for i in range(2, x): # x가 해당 수로 나누어 떨어진다면 if x % i == 0: return False # 소수가 아님 return True # 소수임 print(is_prime_number(4)) print(is_prime_number(7)) O(X) 시간 복잡도 약수의 성..
[동빈나]이코테 2021 강의 몰아보기 (12)(2021.1.15) 본 내용은 해당 강의 토대로 작성 기타 그래프 이론 1. 크루스칼 알고리즘 신장 트리 그래프에서 모든 노드를 포함하면서 사이클이 존재하지 않는 부분 그래프를 의미 모든 노드가 포함되어 서로 연결되면서 사이클이 존재하지 않는다는 조건은 트리의 조건이기도 한다. 일부 간선만 활용 일부 간선을 사용하지 않아도 모든 노드를 이을 수 있으므로 유용한 경우가 있다. 최소 신장 트리 N개의 도시가 존재하는 상황에서 두 도시 사이에 도로를 놓아 전체 도시가 서로 연결될 수 있게 도로를 설치하는 경우 두 도시 A, B를 선택했을 때 A에서 B로 이동하는 경로가 반드시 존재하도록 도로를 설치 포함되는 간선의 합이 최소가 되도록 한다. 최종적으로 만들어지는 최소 신장 트리의 포함된 간선 개수는 전체 노드 개수의 -1이다. ..