Engineering WIKI
-
[프로그래머스] 숫자 문자열과 영단어Engineering WIKI/Programmers 2022. 4. 1. 02:27
코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr 풀이 def solution(s): answer = s num_s = {'zero':0, 'one':1, 'two':2, 'three':3, 'four':4, 'five':5, 'six':6, 'seven':7, 'eight':8, 'nine':9} for item in num_s.items(): answer = answer.replace(item[0], str(item[1])) return int(answer) 다른 사람 풀이 num_dic = {"..
-
[프로그래머스] 로또의 최고순위와 최저순위Engineering WIKI/Programmers 2022. 4. 1. 02:25
코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이 def solution(lottos, win_nums): answer = [] rank = [6, 6, 5, 4, 3, 2, 1] zero_count = lottos.count(0) count = 0 for i in lottos: if i in win_nums: count += 1 answer.append(rank[zero_count + count]) answer.append(rank[count]) return..
-
[프로그래머스] 신고 결과 받기Engineering WIKI/Programmers 2022. 4. 1. 02:22
코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 좋은 코드지만 시간 초과 남 def solution(id_list, reports, k): stop = [] answer = [0] * len(id_list) reports = set(reports) # {wono : [] } dicReports = {id: [] for id in id_list} # 딕셔너리에 value는 리스트 구조 for i in reports: report = i.split(' ') stop.append(report[1]) dicR..
-
[Python] itertools 완전탐색Engineering WIKI/Python 2022. 3. 6. 10:02
완전탐색이란? 문제에서 주어질 수 있는 모든 경우의 수를 탐색하는 알고리즘을 말합니다. 이번 글에서는 알고리즘에서 주로 쓰는 조합형 완탐 함수 4가지를 소개합니다. product permutations combinations combinations_with_replacement 조합형 : product, 곱집합 대표적인 이름으로는 곱집합, 데카르트의 곱이라고 합니다. 곱집합은 for문 두개를 섞어놨다고 생각하시면 됩니다. product(p, q, … [repeat=1]) 이런 형태로 사용할 수 있습니다. 예시 itertools.product('1234', '1234') 또는 itertools.product('1234', repeat=2) [('1', '1'), ('1', '2'), ('1', '3'), ..
-
-
자바 프로그래밍 면접 이렇게 준비한다 - (Sort)Engineering WIKI/Book 2021. 9. 21. 06:42
Bubble sort 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환한다. 선택 정렬과 기본 개념이 유사하다. 버블 정렬(bubble sort) 알고리즘의 특징 장점 구현이 매우 간단하다. 단점 순서에 맞지 않은 요소를 인접한 요소와 교환한다. 하나의 요소가 가장 왼쪽에서 가장 오른쪽으로 이동하기 위해서는 배열에서 모든 다른 요소들과 교환되어야 한다. 특히 특정 요소가 최종 정렬 위치에 이미 있는 경우라도 교환되는 일이 일어난 일반적으로 자료의 교환 작업(SWAP)이 자료의 이동 작업(MOVE)보다 더 복잡하기 때문에 버블 정렬은 단순성에도 불구하고 거의 쓰이지 않는다. 버블 정렬(bubble sort)의 시간복잡도 장점 안정..
-
실무에서 바로 통하는 자바Engineering WIKI/Book 2021. 9. 21. 06:16
실무에서 바로 통하는 자바 생성자 개념, 컴퓨터가 이해하는 클래스 파일 (바이트코드 작성) 데이터 타입 → 기본 자료형(스택), 참조형 스택 영역 - 아주 잠깐 사용하고 삭제할 데이터의 저장공간 변수는 모두 메모리에 저장됨 힙 영역 - 프로그래머가 원하는 방식으로 쓸 수있는 공간, 긴 생명주기를 가진 데이터들이 저장됨 문자열 비교 → '==' 대신 equals를 사용하자 캡슐화 - 외부에서 객체의 속성이나 행위를 호출하는것을 제한하는것 상속 - 이미 존재하는 클래스의 속성이나 행위를 물려받아 새롭게 정의하는 클래스의 일부로 만드는 구조 다형성 - 여러 객체의 공통된 속성과 행위를 추출해 하나의 객체를 만드는 것. 다형성을 사용함으로써 공통된 속성과 행위를 가진 객체를 하나로 모아 사용할 수 있다. 추상클..