Coding Test/programmers
혼자서 하는 틱택토
https://school.programmers.co.kr/learn/courses/30/lessons/160585 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 게임판이 규칙을 지켜서 틱택토를 진행했을 때 나올 수 있는 게임 상황이면 1을 아니라면 0을 return 틱택토 - 가로, 세로, 대각선으로 3개가 같은 표시가 만들어지면 같은 표시를 만든 사람이 승리 - 선공이 "O", 후공이 "X" 혼자 플레이할 때 규칙 어기는 사례 - "O"를 표시할 차례인데 "X"를 표시하거나 반대로 "X"를 표시할 차례인데 "O"를 표시 - 선공이나 후공이 승리해..
[Python] 교점에 별 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/87377 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 분석Ax + By + C = 0으로 표현할 수 있는 n개의 직선이 주어질 때, 이 직선의 교점 중 정수 좌표모든 별을 포함하는 최소 사각형을 returnAx + By + E = 0Cx + Dy + F = 0두 직선의 교점이 유일하게 존재할 경우, 그 교점은 다음과 같습니다.X= (BF - ED) / (AD - BC)y = (EC - AF) / (AD - BC) . . . . . . . . . . ...
[프로그래머스] 숫자 블록
https://school.programmers.co.kr/learn/courses/30/lessons/12923 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 블록에 적힌 번호가 n 일 때, 가장 첫 블록은 n * 2번째 위치에 설치합니다. 그 다음은 n * 3, 그 다음은 n * 4, ...위치에 설치합니다. 기존에 설치된 블록은 빼고 새로운 블록을 집어넣습니다. ➔ n보다 작은 가장 큰 n의 약수 구하기 풀이 from math import sqrt def solution(begin, end): answer = [] for i in range(b..
[프로그래머스] 조이스틱 (완전 탐색)
https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 조이스틱 변환 횟수 = 알파벳 변환 횟수 + 이동 횟수이므로 알파벳마다 변환 횟수를 계산해 조이스틱 변환 횟수에 추가한다. A에서 B로가는 (위로) 숫자 카운트 A에서 Z로가는 (아래로) 숫자 카운트 둘 중에 최솟값을 추가 알파벳마다 이동 횟수를 계산해 최솟값을 조이스틱 변환 횟수에 추가한다. 좌,우 이동 시 바꿔야 할 남은 문자가 A뿐이면 더 진행하지 않아도 되므로 연속하는 A의 인덱스를 ..
[프로그래머스] 과제 진행하기 (정렬, 시간 문자열 비교)
https://school.programmers.co.kr/learn/courses/30/lessons/176962 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 과제를 시작 시간 순으로 정렬 과제의 시작시간을 분단위로 통일해서 저장 (ex: 11:40 → 11*60+40 = 700) 과제를 돌면서 현재 과제 종료시간과 다음 과제의 시작시간 비교 현재 과제 종료시간이 더 크다면 (안끝남) playtime(과제 마치는데 필요한 시간)에서 수행한 시간( 다음 과제 시작시간-현재 과제 시작시간) 만큼 빼서 대기 큐에 저장 현재 과제 종료시간이 더 작다면 ..
[프로그래머스] 우박수열 정적분 (평행사변형 넓이)
https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 k =5 ranges = [0,0],[0,-1],[2,-3],[3,-3]] 5 라면 5 ⇒ 16 ⇒ 8 ⇒ 4 ⇒2 ⇒ 1 이되어 총 5번만에 1 tmp = [5.0, 16, 8.0, 4.0, 2.0, 1.0] 평행사변형의 넓이 = (변+변)*높이/2 x :0~1 ➔ (5+16)*1/2 = 10.5 x :1~2 ➔ (16+8)*1/2 = 12.0 x :2~3 ➔ (8+4)*1/2 = 6.0..
[프로그래머스] 연속 펄스 부분 수열의 합 (누적합, 구간합, DP)
https://school.programmers.co.kr/learn/courses/30/lessons/161988 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 [2, 3, -6, 1, 3, -1, 2, 4] sequence 2 3 -6 1 3 -1 2 4 -1 1 펄스 -2 3 6 1 -3 -1 -2 4 -1 1 펄스 누적합 -2 1 7 8 5 4 2 6 1 -1 펄스 2 -3 -6 -1 3 1 2 -4 1 -1 펄스 누적합 2 -1 -7 -8 -5 -4 -2 -6 구간합 최댓값 구하기 = max(누적합리스트) - min(누적합리스트) 더보기 2..
[프로그래머스] 두 원 사이의 정수 쌍 (피타고라스)
https://school.programmers.co.kr/learn/courses/30/lessons/181187 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 https://karla.tistory.com/392 점 찍기 (피타고라스) https://school.programmers.co.kr/learn/courses/30/lessons/140107 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞 karla.tistory.com 풀이 from math im..
디펜스 게임 (우선순위큐, 힙)
https://school.programmers.co.kr/learn/courses/30/lessons/142085# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 통과 못하는 시점의 인덱스 = 몇 라운드까지 막을 수 있는지 병사의 수 n=7 사용 가능한 무적권의 횟수 k = 3 라운드마다 공격해오는 적의 수 enemy = [4, 2, 4, 5, 3, 3, 1] 인덱스 힙 병사수 0 [4] 7 1 [2, 4] 7 2 [2, 4, 4] 7 3 [2, 4, 4, 5] (한 라운드 무적권 사용불가하므로 병사 수 계산) 5 4 [2, 3, 4, 5, 4] ..
리코쳇 로봇 (BFS)
https://school.programmers.co.kr/learn/courses/30/lessons/169199 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 분석 한 번의 이동 : 상, 하, 좌, 우 4방향 중 하나를 선택해 게임판 위의 장애물이나 맨 끝에 부딪힐 때까지 미끄러져 이동하는 것 1. 다음 좌표 값을 board 격자 안 장애물이 아닐 때까지 이동 후 지정 2. 방문하지 않았다면 현재 이동수 +1 저장 . . . D . . R . D . G . . . . . . . D . D D . . . . D . . D . . . . . 아래, 왼쪽,..