[Programmers] Lv1. 로또의 최고 순위와 최저 순위 문제 바로가기 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 풀이 solution 함수는 0이 6개면 [1, 6]을 반환하고, 아니라면 lottos와 win_nums를 정렬한 후 countAnswer함수를 반환 countAnswer함수는 정렬된 리스트를 돌면서 정답의 개수를 answer_cnt로 구한다. 그리고 rankLotto 함수를 반환 rankLotto함수는 [정답 개수, 정답 개수 + 0의 개수]를 가지고 1~6등을 매기는 함수 코드 def rankLot.. 2021. 5. 14.
[Programmers] Lv1. 모의고사 문제 바로가기 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 풀이 3명의 사람이라서 people의 푸는 방식을 리스트로 만들었다 그리고 score를 미리 [0, 0, 0]으로 초기화해 answers를 돌면서 수포자의 정답과 같으면 score 해당 인덱스를 +1 (여기서, 각 수포자의 정답 길이를 가지고 % 연산을 통해 리스트를 길게 늘이지 않고 정답의 인덱스 계산 가능) 점수 중 최고점을 가지고 answer에 최고점을 가진 수포자의 번호를 추가해준다. 코드 def solution(answers): score.. 2021. 5. 14.
[Programmers] Lv1. 크레인 인형뽑기 게임 문제 바로가기 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 풀이 stack을 이용해서 풀었다 moves의 배열을 돌면서 board의 열을 moves원소의 -1로 두고, 행을 board의 길이만큼 돌면서 인형을 찾습니다 그리고 인형을 발견하면 stack에 인형을 쌓고 해당 board의 값을 0으로 만들고 break 그 후 stack의 길이가 1 이상이 되면 같은 인형이 나올 수 있으므로 while문을 stack의 길이가 1 이상일 때로 지정 stack의 마지막 원소와 뒤에서 두 번째 원소가 같은 경우, answer에 없어진 인형의 개.. 2021. 5. 14.
[Programmers] Lv1. 키패드 누르기 문제 바로가기 코딩테스트 연습 - 키패드 누르기 [1, 3, 4, 5, 8, 2, 1, 4, 5, 9, 5] "right" "LRLLLRLLRRL" [7, 0, 8, 2, 8, 3, 1, 5, 7, 6, 2] "left" "LRLLRRLLLRR" [1, 2, 3, 4, 5, 6, 7, 8, 9, 0] "right" "LLRLLRLLRL" programmers.co.kr 풀이 lefts, mids, rights에 해당하는 keypad를 리스트로 나타냄 '*'과 '#'에 해당하는 index를 사용해서 왼손과 오른손의 위치를 초기화함 그리고 숫자 리스트를 돌면서, lefts에 들어있으면 answer에 L을 추가하고 왼손 위치를 lefts의 index를 사용해 변경 rights에 들어있으면 answer에 R을 .. 2021. 5. 13.
[SQLD] 2과목. SQL 기본 및 활용 - 3 03. SQL 최적화 기본 원리 옵티마이저와 실행계획 옵티마이저 다양한 실행 방법들 중 최적의 실행방법을 결정하는 것 옵티마이저 종류 규칙 기반 옵티마이저(Rule Based Optimizer, RBO) 제일 낮은 우선순위 : 전체 테이블 스캔 제일 높은 우선순위 : 행에 대한 고유 주소(ROWID)를 활용해 테이블 액세스 하는 방법 적절한 인덱스가 존재하면 항상 인덱스를 사용하려고 함 비용 기반 옵티마이저(Cost Based Optimizer, CBO) 테이블 및 인덱스 등의 통계정보를 활용해 SQL문을 실행하는 데 소요될 처리시간 및 CPU, I/O 자원량 등을 계산해 가장 효율적일 것으로 예상되는 실행계획을 선택하는 옵티마이저 통계정보가 변경되면 SQL 실행계획이 달라질 수 있음 인덱스가 존재하더라.. 2021. 5. 13.
[SQLD] 2과목. SQL 기본 및 활용 - 2 02. SQL 활용 표준 조인 순수 관계 연산자 SELECT 연산은 WHERE 절로 구현 PROJECT 연산은 SELECT절로 구현 (NATURE) JOIN 연산은 다양한 JOIN 기능으로 구현 DIVIDE 연산은 현재 사용 X ANSI/ISO SQL에서 표시하는 FROM 절의 JOIN 형태 INNER JOIN NATURAL JOIN USING 조건절 ON 조건절 CROSS JOIN OUTER JOIN(LEFT, RIGHT, FULL) JOIN 적절한 JOIN 조건이 없으면 카티시안 곱(Cartesian Product)이 발생함 JOIN 종류 INNER JOIN : JOIN 조건에서 동일한 값이 있는 행만 반환 LEFT OUTER JOIN : 조인 수행시 먼저 표기된 좌측 테이블 데이터 먼저 읽고, 우측.. 2021. 5. 13.
[과제] FE - 고양이 사진 검색 사이트 [프론트엔드] 고양이 사진 검색 사이트 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 더보기 주제(시나리오) 고양이를 좋아하는 당신은 고양이 사진 전용 검색 웹사이트를 운영하고 있었습니다. 지금까지는 혼자 소소하게 운영해왔는데, 생각보다 고양이 사진을 원하는 사람들이 많아지면서 해결해야 할 문제들이 하나씩 드러나기 시작했어요. 몇 개의 문제는 금세 고칠 수 있지만, 기존 코드를 자세히 봐야만 고칠 수 있는 문제들도 있어서 조금 골치아픈 상황! 심지어 최대 4시간 내에 수정한 뒤 배포를 해야만 합니다. 당신이라면 기존 서비스의 여러 버그를 제한시간 내에 고.. 2021. 5. 13.
[SQLD] 2과목. SQL 기본 및 활용 - 1 01. SQL 기본 기본 SQL WHERE절 SQL을 사용해 DB에서 데이터를 조회할 때 원하는 데이터만 검색하기 위해 FROM절 다음에 위치해 조건을 설정해 조회 구성 칼럼명(보통 조건식의 좌측) 비교 연산자 문자/숫자/표현식(보통 조건식 우측에 위치) 비교 칼럼명(JOIN사용 시) 연산자 비교 연산자 =, >, =, ~보다 크지 않다 부정 SQL 연산자 NOT BETWEEN a AND b a와 b의 값 사이에 있지 않다 NOT IN (List) List 값과 일치하지 않는다 IS NOT NULL NULL 값을 갖지 않는다 연산자 우선순위 괄호로 묶은 연산 부정 연산자(NOT) 비교 연산자(=, , =)와 SQL 연산자(BETWEEN, IN, LIKE, IS NULL) 논리 연산자 중 AND, OR 순.. 2021. 5. 12.
[Programmers] Lv1. 체육복 문제 바로가기 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr 풀이 lost와 reserve 값이 공통으로 존재하는 것은 제외시켜줘야하기 때문에, set을 활용해서 차집합 구하기 반복문을 돌면서 index가 작은 것(i-1)부터 빌려주고, 만약에 i-1이 없다면 i+1의 학생을 빌려준다. 코드 def solution(n, lost, reserve): lost1 = set(lost)-set(reserve) reserve1 = set(reserve) - set(lost) for i in reserve1: if i-.. 2021. 5. 12.
반응형