본문 바로가기
728x90

알고리즘/코드19

코딩테스트 고득점 Kit [정렬] - K번째 수 (python) def solution(array, commands): answer = [] for cmd in commands: newArray = array[cmd[0] - 1 : cmd[1]] newArray.sort() answer.append(newArray[cmd[2] - 1]) return answer 2020. 5. 11.
leetcode 1week 어떤 알고리즘 및 자료구조를 사용해야 효율적인지 생각해 볼 수 있어서 좋은 것 같다. 1. array list count 함수 사용 class Solution(object): def singleNumber(self, nums): for n in nums: if nums.count(n) == 1: return n for문에 count 당연히 O(n제곱) 으로 성능은 좋지 않았다 2. Set 자료형의 in 이용 class Solution(object): def singleNumber(self, nums): s = set() for n in nums: if ( n in s ): s.remove(n) else: s.add(n) return s.pop() set 자료형의 push/pop/in 기능을 이용하여 찾음.. 2020. 5. 3.
프로그래머스 SQL 고득점 Kit - SUM, MAX, MIN 1. 가장 최근에 들어온 데이터 조회 하기 Select Max( data필드 ) from 테이블이름 2. 가장 먼저 들어온 데이터 조회 Select Min( 필드이름 ) from 테이블이름 3. Data 개수 세기 SELECT count(*) from ANIMAL_INS 4. Null, 중복값 제외 한 개수 세기 SELECT count( distinct 필드이름 ) from ANIMAL_INS 2020. 4. 26.
[코딩테스트 고득점 Kit] 해시 1 - 완주하지 못한 선수 Participant : 참가자 list Completion : 완주자 list def solution(participant, completion): participant.sort() completion.sort() for i in range(0, len(completion)): if participant[i] != completion[i] : return participant[i] return participant.pop() +) collections.counter를 사용해서 쉽게 푸는 모습을 봤다. 세상에 천재가 너무 많아. +) Hash를 정석으로 사용해서 푼 코드를 보니 Participant, Completion각각 hash 돌린 값에서 빼서 구하는 식으로 구현해놨다. for문을 두번이나 도는데 .. 2020. 1. 27.
프로그래머스 SQL 고득점 Kit - SELECT 1. 모든 레코드 조회하기 ORDER BY [Field name] : ~를 기준으로 오름차순으로 정렬 2. 역순 정렬하기 ORDER BY [Field name] DESC : ~를 기준으로 내림차순으로 정렬 3. 아픈 동물 찾기 WHERE [Field name] = Condition : WHERE 조건문 4. 어린 동물 찾기 WHERE [Field name] != Condition : WHERE 조건문 5. 동물의 아이디와 이름 6. 여러 기준으로 정렬하기 7. 상위 N개 레코드 LIMIT [NUM] : NUM개수 만큼 출력 2020. 1. 27.
2020 KAKAO BLIND RECRUITMENT 문자열 압축 백준 알고리즘 2135번 문자열 압축하기 문제와 비슷해 보이는데 좀더 쉬운 문제 같아 보였다. python으로 풀어보았다 def zip_string(s, size): zipstring = "" count = 1 chk_word = s[0:size] for i in range(size,len(s),size): cur_word = s[i:i+size] if(chk_word == cur_word): count = count + 1 else: if count > 1: zipstring = zipstring + str(count) + chk_word else: zipstring = zipstring + chk_word chk_word = cur_word count = 1 if count > 1 : zipstrin.. 2019. 11. 25.
728x90