- Ai
- Machine Learning
- [멀티잇]데이터 시각화&분석 취업캠프(Python)
- 난생처음 R코딩&데이터 분석 저서
- boostcourse
- Oracle
- 인공지능기초다지기
- r
- 파이썬
- 코딩테스트 python
- 이기적
- 데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- PY4E
- 빅데이터 분석 기반 에너지 운영 관리자 양성 및 취업과정
- 이것이 취업을 위한 코딩테스트다 with 파이썬
- 코딩테스트
- 데이터베이스
- 프로그래머스
- 빅분기
- 기초다지기
- 네이버부스트캠프
- DB
- 부스트코스
- 오라클
- 정보처리기사
- python
- AI 플랫폼을 활용한 데이터 분석
- boostcoures
- 빅데이터분석기사
- SQL
- Today
- Total
목록코딩테스트 python (13)
매일공부
출처 [저서] : 이것이 취업을 위한 코딩테스트다 with 파이썬 # 문제 나이트 이동 가능한 방향 - 수평 2칸 > 수직 1칸 - 수직 2칸 > 수평 1칸 현 좌표가 주어졌을 때 나이트가 이동가능한 경우의 수는? x : a~h y : 1~8 # 풀이 1. 나이트가 이동가능한 좌표 정의 steps = [(-1,2), (1, 2), (-1,-2), (1, -2), (-2, 1), (-2, -1), (2, 1), (2, -1)] 2. x 좌표의 연속된 알파벳 > int 변환 1) x의 알파벳을 수작업으로 정의 후 인덱스를 활용하여 변환 x_list = ['a','b','c','d','e','f','g','h'] now = list(map(int, [x_list.index(xy[0])+1, xy[1]])) 2..
출처 [저서] : 이것이 취업을 위한 코딩테스트다 with 파이썬 구현 = 아이디어를 코드로 유형 : 완전탐색, 시뮬레이션 메모리 사용량 with Python : int 자료형 데이터 개수 리스트 길이 메모리 사용량 ~ 1,000,000 약 4KB 10,000,000 약 40MB >> 사용량 제한보다 적은 크기의 메모리 사용 해야함 시간제한 1초에 2,000만 번 연산 수행 가정 >> 데이터 개수 = 100만 개, 시간복잡도 O(NlogN)이내의 알고리즘 사용해야함 예시] n = 1,000,000일 때, Nlog₂N =약 20,000,000 접근방법 고차원적인 사고력x >> 문법에 익숙하면 ok, 문제를 잘 읽으면 해결 가능 1. 상하좌우 문제 # 이동 횟수에 비례 # >> 이동횟수:시간복잡도 = N:O..
#저서 : 이것이 취업을 위한 코딩테스트다 with 파이썬 #기출 : 2018 E 기업 알고리즘 대회 # 문제 N이 1이 될 때까지 다음의 두 과정 중 하나를 반복적으로 선택 수행할 때, N이 1이 될때까지 1번 혹은 2번의 과정을 수행해야하는 쵯솟값 출력 1. N에서 1을 뺀다 2. N을 K로 나눈다 (단, N이 K로 나누어떨어질 때만 선택) # 제한사항 첫 줄 : N(2 단점 : 만약 N이 100억 이상이라면 시간 효율↓ > N이 K의 배수가 되도록 한 번에 빼는 것이 효율적 # 책의 답안 예시 n, k = map(int, input().split()) cnt = 0 while True: target = (n//k) * k #k의 배수 확인 cnt += (n-target) #배수가 될 때까지 한번에 ..
#저서 : 이것이 취업을 위한 코딩테스트다 with 파이썬 #기출 : 2019 국가 교육기관 코딩 테스트 # 문제 룰을 지켜서 가장 높은 숫자카드 뽑기 1. 카드는 n행 x m열 로 놓여있음 2. 먼저 뽑고자 하는 행 선택 3. 그 행에서 가장 낮은 숫자 카드 뽑기 # 제한사항 첫 줄 : 공백을 기준으로 n, m의 개수가 자연수로 주어짐 ( 1

* 이것이 취업을 위한 코딩 테스트다 with 파이썬의 부록A를 참고하였습니다. # eval() 문자열 형식의 수식 계산 # itertools : 반복되는 형태의 데이터 처리 - 순열 : data에서 r개를 뽑아 일렬로 나열하는 모든 경우 from itertools import permutations data = [] print(list(permutaions(data, 3))) - 조합 : data에서 r개를 뽑아 순서 고려x 나열하는 모든 경우 from itertools import combinations data = [] print(list(combinations(data, 2))) - 중복가능한 순열 from itertools import product data = [] print(list(prod..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 처음 정확도 테스트는 바로 통과! 하지만 효율성에서 전체 실패.... from collections import Counter def solution(participant, completion): p_cnt = Counter(participant) c_cnt = Counter(completion) answer = [p for p in p_cnt.keys() if (p not in completion) or (c_cnt[p] != p_cnt[p])] return s for s in answer 일반 for문보단..

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr > 프로그래머스의 여행경로 문제 처음에 enumerate 활용했지만 그 경로가 아닌 경우 돌아가는 루트가 없어서 실패 프로그래머스 문제 풀이 여행 경로 이 문제는 이시윤 강사님의 프로그래머스 강좌 "파이썬을 무기로, 코딩테스트 광탈을 면하자!"를 보고 정리한 내용입니다. 문제 URL 여행 경로 Contents 문제 지문 파악하기 강사님의 알고리즘 풀이 gurumee92.tistory.com 이분이 설명해주신 예시보고 차근차근 이해하면서 DFS로 다시 작성 (코드는 위의 게시글 참고!) 출발-도착 형태로 경로 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 주의사항 : 해당 k진수로 변환했을 때 0으로 나눈 수 기준 > 그 수를 k진법이 아닌 10진수로 봤을 때 소수 여부 (문제를 꼼꼼히 읽자...!!!!😭) def k_num(n, k): #k진법으로 변환 if k == 10: return n #10진수면 그대로 반환 else: base = '' while n > 0: n, mod = divmod(n, k) base += str(mod) return base[::-1] def prime_num(num): #소수여부 판단 p_cnt = 0 for k in rang..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 조건을 정말 꼼꼼히 읽어야함.. def solution(s): _answer = [] words = s.split(' ') for word in words: answer = "" for idx, w in enumerate(word): if idx%2 == 0: answer += w.upper() elif idx%2 == 1: answer += w.lower() else: answer += w _answer.append(answer) return ' '.join(_answer) split() 와 split(' ..
그리디(Greedy) - 단순하지만 강력한, 현재 당장 좋은 것만 선택하는 알고리즘 - 대부분의 문제는 그리디 알고리즘을 적용했을 때 '최적의 해'를 찾을 수 없을 가능성 높음 > 정당한지 검토 필수! 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr ▲ 문제 def solution(n, lost, reserve): student=[1 for _ in range(n)] #전체 학생수 만큼 list 생성 for lost_num in lost: if lost_num in reserve:#도난당했지만 여벌이 있는 학생 제외 reserve.remove(lost_nu..