Coding Test(125)
-
[Programmers] Lv2. 이모티콘 할인행사 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 역시 사람은 잠을 잘 자고, 밥 먹고, 커피 한 잔 마시면서 진행해야 능률이 좋나 봅니다. 저번에 풀 땐 머리가 안 돌아가서 그냥 시간만 보내고 있었는데, 이번엔 카페에 와서 정상 컨디션으로 푸니까 금방 풀었네요. 판매하는 이모티콘의 최대 개수는 7개이고, 할인은 40%, 30%, 20%, 10% 이렇게 4가지 뿐이므로 최악일 때의 모든 경우의 수는 \( 4 ^ 7 = 16,384 \) 가지입니다. 유저의 최대 수가 100명이므로 \( 100 \times 7 \times 16,..
2023.07.09 -
[Programmers] Lv2. 요격 시스템 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 기존에 작성했던 코드랑 새로 작성한 코드랑 전혀 다른 점이 없는 것 같은데, 새로 작성한 코드는 맞았습니다. 무슨 차이인 거지... 제가 푼 방식은 다음과 같습니다. 미사일들의 start 지점을 기준으로 오름차순 정렬합니다. (start 지점이 같다면, end가 작은 걸로) 현재 구간의 마지막 부분(currentEnd)이 미사일의 시작 부분과 같거나 크다면, 현재 구간에선 요격할 수 없는 미사일입니다. 따라서, 새 구간을 늘리고, 현재 미사일의 마지막 부분을 currentEnd..
2023.07.06 -
[Programmers] Lv2. 혼자서 하는 틱택토 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 3 X 3 맵에서 먼저 가로 혹은 세로 혹은 대각선 3개의 라인을 만드는 사람이 이기는 게임입니다. 하지만, 이겼는가 졌는가를 보는 것이 아니라, 올바르게 게임을 진행했는가를 보는 것이므로 다음과 같은 사항들을 체크해야 합니다. 번갈아 가면서 진행해야 하는데, 어느 한 쪽이 2번 연속 진행한 경우 ( | 'O'의 개수 - 'X'의 개수| > 1) 선공이 먼저 놔야 하는데, 후공이 먼저 놓은 경우 ( 'O'의 개수 < 'X'의 개수 ) 둘 다 이겼다고 판정할 경우 ( 'O' 3개..
2023.07.05 -
[Programmers] Lv2. 숫자 블록 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 n번째 블록에 놓여질 숫자는 n이 소수일 경우엔 1, 아닐 경우에는 10,000,000보다 작은 제일 큰 약수입니다. 제곱근 방식을 이용하여 약수와 소수를 찾는 데에 시간을 효율적으로 절약할 수 있습니다. 현재 점검하려는 숫자를 i라고 한다면, n / i \( \leq 10,000,000 \) 이라면, n / i가 가장 큰 약수가 됩니다. 가장 큰 약수를 찾았으므로 반복문을 종료합니다. 아니라면, i를 선택한 후에 다음 루프로 넘어가도록 합니다. n이 1인 경우에는 0이 적힌 ..
2023.07.04 -
[Programmers] Lv2. 두 원 사이의 정수 쌍 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 원은 상하좌우 대칭이므로, 4개의 사분면 중 하나에 속한 점들 개수만 구해서 4배 후, 겹치는 점 개수들만 빼주면 되겠다고 생각하였습니다. 저는 2사분면을 선택하여 진행하였습니다. 아래 과정은 제 2사분면 내에 점들 개수를 구한다는 가정 하에 진행한 과정들입니다. 우리는 정수 부분만 택해야 하므로, 큰 원의 y값은 내림, 작은 원의 y값은 올림 처리를 해야 합니다. [a, b] 구간의 자연수 개수를 구하는 공식은 b - a + 1입니다. (a ≤ b) 큰 원을 r1, 작은 원을..
2023.07.03 -
[Programmers] Lv2. 우박수열 정적분 | C++
🔗문제 보러가기 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 👨💻풀이 과정 다음 문제 지문 부분이 무슨 말인지 헷갈려, 이해하는 데에 시간이 좀 걸렸습니다. "단, 우박수열 그래프의 가로축 길이를 미리 알 수 없기 때문에 구간의 시작은 음이 아닌 정수, 구간의 끝은 양이 아닌 정수로 표현합니다. 이는 각각 꺾은선 그래프가 시작하는 점과 끝나는 점의 x좌표에 대한 상대적인 오프셋을 의미합니다." 구한 우박수열의 마지막 좌표(위 예제로 보면 (5, 1))의 x값을 LX라고 한다면, 주어진 구간 [a, b]는 [0 + a, LX + b]를 의미하는 거였습니..
2023.07.01