목록프로그래머스 알고리즘 (225)
N
https://programmers.co.kr/learn/courses/30/lessons/82612?language=javascript 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr function solution(price, money, count) { let sum = 0; while(count){ sum += price * count--; } return money - sum < 0 ? sum - money : 0; }
https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 문제를 풀다가 행과 열을 반대로 생각해서 깜짝 놀랐다...ㅎㅎ 이 점만 주의하면 문제는 쉽게 풀 수 있다. 이중 for문을 이용한 문제 풀이. 현재 학생의 인덱스가 i라면 자신의 점수는 scores[i][i]다. min = 현재 학생이 받은 점수 중 최저점. max = 현재 학생이 받은 점수 중 최고점..
https://programmers.co.kr/learn/courses/30/lessons/49189?language=javascript 코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr 큐와 BFS를 이용한 문제 풀이. 우선 그래프를 그리기 위해 n + 1의 크기만큼 2차원 배열 graph를 선언. 노드의 방문 여부를 알기 위한 visited 배열을 선언. for문. 주어진 edge는 무방향 그래프이기 때문에 두 노드에 해당하는 번호를 각각 넣어줘야 한다. 큐 class를 만들어 bfs를 위한 큐를 만든다. 문제가 1부터 가장 먼 노드를 찾아야 하기 때문에 큐에 1을 넣어 시작(..
https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr 해시를 이용한 문제 풀이. gSum 객체는 각 장르의 총 플레이 횟수를 담는다. gIndex 객체는 각 장르의 곡마다 플레이 횟수와 인덱스를 담는다. 우선 각 장르 별 총 플레이 횟수와 인덱스를 알아야 한다. for문을 통해 genres와 plays의 원소에 접근. 만약 gSum 객체에서 genre를 key로 가지고 있지 않다면(undefined) 0으로 초기..
https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 완전 탐색을 실시. isPossible()함수를 통해 현재 방의 거리두기가 제대로 되어 있..
https://programmers.co.kr/learn/challenges 코딩테스트 연습 기초부터 차근차근, 직접 코드를 작성해 보세요. programmers.co.kr 주어진 문자열에서 숫자가 영단어로 이뤄진 경우 숫자로 바꿔 리턴하면 된다. for문을 통해 s의 문자를 확인한다. zero, one, eight, nine 처럼 영단어의 시작이 다른 숫자와 겹치지 않기 때문에 해당하는 숫자(문자열로 저장)를 answer에 저장한다. 그리고 단어의 길이 - 1을 i에 더해 다음 문자를 읽도록 한다. 만약 two, three, four, five와 같이 중복되는 경우 substr()함수를 이용해 한번 더 검사하여 해당하는 숫자를 저장한다. 마찬가지로 i에 단어의 길이 - 1을 더한다. 리턴값은 int형이..
https://programmers.co.kr/learn/courses/30/lessons/59043 코딩테스트 연습 - 있었는데요 없었습니다 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr JOIN을 이용한 문제 풀이. SELECT INS.ANIMAL_ID, INS.NAME FROM ANIMAL_INS AS INS JOIN ANIMAL_OUTS AS OUTS WHERE INS.ANIMAL_ID = OUTS.ANIMAL_ID AND IN..
https://programmers.co.kr/learn/courses/30/lessons/59414 코딩테스트 연습 - DATETIME에서 DATE로 형 변환 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr DATE_FORMAT()을 이용해 DATETIME을 원하는 형태로 바꿀 수 있다. SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d") FROM ANIMAL_INS ORDER BY ..