본문 바로가기

CodingTest

(20)
혼자서 하는 틱택토 https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  1. 문제 개요이 문제의 핵심은 주어진 게임판이 규칙을 어겼는 지 판별하는 것이다. 예를 들어, 승리한 쪽이 있음에도 게임을 계속했거나, 표시를 잘못 했는 지 등의 경우를 판단하여야 한다.  2. 풀이1) 데이터 변환 및 변수 초기화vector> boardCnv(3, vector(3));int oCnt = 0, xCnt = 0;for (int i = 0; i  탐색의 편의성을 위해, 게임판의 정보는 boardCnv라는 2D vector에 저..
숫자 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 1. 개요큐에 (연산을 가했을 때의 숫자, 그 숫자에 도달하기 까지 필요한 연산 횟수)를 저장하고, 이를 순회하며 목표치에 도달한 경우가 있는 지 확인하는 것이 이 문제의 골자이다.  2. 알고리즘 및 풀이1) 변수 초기화int ans = -1;queue> que; // 숫자, 그 숫자에 도달하기 까지의 연산 횟수를 저장que.push({x, 0}); // 큐 초기화set visited; // 봤던 숫자를 저장 숫자와 연산횟수를 자장하기 위한..
호텔 대실 https://school.programmers.co.kr/learn/courses/30/lessons/155651 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  1. 개요 최소 힙, 정렬을 사용하는 문제이다.  2. 알고리즘 및 풀이 1) 변수 초기화ans = 0 # 필요한 객실의 갯수book_time_cnv = [] # 분 단위로 변환한 대실 시작 및 종료시각 저장hque = [] # 최소 힙, 현재 객실을 사용하는 손님이 나가는 시각(종료시각)만 저장 2) 단위 변경 및 정렬for time in book_time: st, ed = time st_hh, st_mm = map(in..
기능개발 https://school.programmers.co.kr/learn/courses/30/lessons/42586 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr I. 문제 개요기능 개발까지 걸리는 기간을 계산하여, 언제 몇 개의 기능을 배포하는 지 알아내는 것이 목표이다. II. 알고리즘 배포 일정을 저장할 2D list인 "trace"를 만들어준다. 각 배포 일정은 "[배포일자, 배포되는 기능 수]"의 구조를 가진다.  먼저, 지금 보는 기능을 배포하기 까지의 기간을 구해준다. 이전의 기능이 모두 배포된 경우, 대기 없이 해당 기능을 trace에 넣고, 배..
주식가격 https://school.programmers.co.kr/learn/courses/30/lessons/42584 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr I. 개요스택을 이용하여 가격이 언제 떨어졌는 지 계산하는 문제이다. 가격이 떨어지지 않으면 스택에 넣고, 떨어지는 시점에서 스택을 비워주면 된다.  II. 알고리즘 설계마주할 수 있는 경우에는 실제로 떨어지거나, 한번도 떨어지지 않는 2가지 경우가 있다. 따라서 위 2가지의 경우를 모두 고려해야 한다. 1. 실제로 떨어지는 경우스택에는 이전에 본 가격의 index들을 넣어둔다. 현재 보고있는 가격이..
213. House Robber II https://leetcode.com/problems/house-robber-ii/I. 문제 개요DP를 활용하여 도둑질로 얻을 수 있는 최댓값을 구하는 문제이다. II. 알고리즘 설계만약 첫번째 집을 털면 2번째, 마지막 집은 털 수 없다. 왜냐하면 집들은 원형으로 놓여있기에, 첫번째 집을 털면 2번째와 마지막 집에 경보가 들어오기 때문이다. 따라서, 첫번째 집을 터는 경우와 털지 않는 경우 2가지로 나눠서 생각해야 한다. 1. 첫번째 집부터 터는 경우V(시작)XO...OX V: 시작점O: 털 수 있는 집X: 못 터는 집 dp에 사용할 list를 만들고, 1번째와 2번째 원소는 nums[0]으로 변경한다. 그다음 2번째 집부터 터는 경우와, 털지 않았을 때의 금액 중, 더 큰 값을 list에 집어넣는다 ..
등굣길 https://school.programmers.co.kr/learn/courses/30/lessons/42898 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr I. 문제 개요DP를 활용하여, 유효한 경로의 갯수를 찾아내는 문제이다. II. 알고리즘 설계00000010000000000000 0 : 패딩0 : 웅덩이 dp 탐색에 사용할 2D-list는 위와 같이 초기화 할 수 있다. 윗쪽과 왼쪽에 0으로된 padding을 추가함으로써, 탐색할 때 경계를 넘어갈 경우에도 에러를 예방할 수 있다. 각 칸에 도달하는 경우의 수는 (현재 칸의 윗칸에 도달하는 경우의 ..
정수 삼각형 https://school.programmers.co.kr/learn/courses/30/lessons/43105 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr I. 문제 개요 삼각형에 들어있는 숫자 중, 지나온 숫자들의 최대 합을 구하는 문제이다. II. 알고리즘 설계 및 풀이 1. DP 점화식 설계 0행: 7 1행: 3 8 2행: 8 1 0 주어진 삼각형을 위와 같이 직각 삼각형으로 보자. 2행의 "8"은 1행의 "3"에서밖에 접근할 수 없다. 2행의 "1"은 1행의 "3", "8" 두 군데에서 접근할 수 있다. 2행의 "0"은 1행의 "8"에서만 접..