본문 바로가기

HOME

(207)
[프로그래머스/Python] 교점에 별 만들기 문제 설명 문제 설명 Ax + By + C = 0으로 표현할 수 있는 n개의 직선이 주어질 때, 이 직선의 교점 중 정수 좌표에 별을 그리려 합니다. 예를 들어, 다음과 같은 직선 5개를 2x - y + 4 = 0 -2x - y + 4 = 0 -y + 1 = 0 5x - 8y - 12 = 0 5x + 8y + 12 = 0 좌표 평면 위에 그리면 아래 그림과 같습니다. 이때, 모든 교점의 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4), (1.5, 1.0), (2.1, -0.19), (0, -1.5), (-2.1, -0.19), (-1.5, 1.0)입니다. 이 중 정수로만 표현되는 좌표는 (4, 1), (4, -4), (-4, -4), (-4, 1), (0, 4)입니다...
[백준/C++] 1181번 풀이 문제 설명 문제 풀이 2만개의 단어면 정렬 후 출력을 해도 문제가 없을 것이라고 생각했다 (NlogN가 2억 미만이므로) 중복을 따로 제거하기 귀찮아서 set을 이용하였고 set의 정렬방법을 따로 정의해주었다. 이 때 set은 operator를 overloading할 때 const를 쓰지 않으면 컴파일 오류가 나는데 원인은 아래 링크에서 설명하겠다. https://readble-ko.tistory.com/185 [C++] set operator 사용 시 const가 필요한 이유 백준 문제를 풀다가 신기한 것을 발견했다. vector나 배열의 비교 연산자를 오버로딩할 때는 const가 없어도 컴파일 오류가 없었는데, set의 비교 연산자를 오버로딩하려고 하니 const가 없을 때만 컴 readable-ko..
[C++] set operator 사용 시 const가 필요한 이유 백준 문제를 풀다가 신기한 것을 발견했다. vector나 배열의 비교 연산자를 오버로딩할 때는 const가 없어도 컴파일 오류가 없었는데, set의 비교 연산자를 오버로딩하려고 하니 const가 없을 때만 컴파일 오류가 나는 것을 확인했다. 내가 짠 코드는 아래와 같다. 분명 로컬 vscode에서는 이상 없이 컴파일 됐는데 컴파일 오류가 나서 당황스러웠다. #include #include using namespace std ; struct cmp { //여기 const가 없으면 컴파일 오류가 났다. bool operator()(string a, string b) const { if(a.length() == b.length()) return a < b ; return a.length() < b.length..
[프로그래머스/C++] 양궁대회 풀이 및 과정 문제 설명 문제 설명 카카오배 양궁대회가 열렸습니다. 라이언은 저번 카카오배 양궁대회 우승자이고 이번 대회에도 결승전까지 올라왔습니다. 결승전 상대는 어피치입니다. 카카오배 양궁대회 운영위원회는 한 선수의 연속 우승보다는 다양한 선수들이 양궁대회에서 우승하기를 원합니다. 따라서, 양궁대회 운영위원회는 결승전 규칙을 전 대회 우승자인 라이언에게 불리하게 다음과 같이 정했습니다. 어피치가 화살 n발을 다 쏜 후에 라이언이 화살 n발을 쏩니다. 점수를 계산합니다. 과녁판은 아래 사진처럼 생겼으며 가장 작은 원의 과녁 점수는 10점이고 가장 큰 원의 바깥쪽은 과녁 점수가 0점입니다. 만약, k(k는 1~10사이의 자연수)점을 어피치가 a발을 맞혔고 라이언이 b발을 맞혔을 경우 더 많은 화살을 k점에 맞힌 선수가..
[프로그래머스/Python] 주차 요금 계산 문제 해석 문제 설명 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 기본 시간(분) 기본 요금(원) 단위 시간(분) 단위 요금(원) 180 5000 10 600 입/출차 기록 시각(시:분) 차량 번호 내역 05:34 5961 입차 06:00 0000 입차 06:34 0000 출차 07:59 5961 출차 07:59 0148 입차 18:59 0000 입차 19:09 0148 출차 22:59 5961 입차 23:00 5961 출차 자동차별 주차 요금 차량 번호 누적 주차 시간(분) 주차 요금(원) 0000 34 + 300 = 334 5000 + ⌈(334 - 180) / 10⌉ x 600 = 146..
[프로그래머스/C++] 피로도 문제 해석 문제 설명 XX게임에는 피로도 시스템(0 이상의 정수로 표현합니다)이 있으며, 일정 피로도를 사용해서 던전을 탐험할 수 있습니다. 이때, 각 던전마다 탐험을 시작하기 위해 필요한 "최소 필요 피로도"와 던전 탐험을 마쳤을 때 소모되는 "소모 피로도"가 있습니다. "최소 필요 피로도"는 해당 던전을 탐험하기 위해 가지고 있어야 하는 최소한의 피로도를 나타내며, "소모 피로도"는 던전을 탐험한 후 소모되는 피로도를 나타냅니다. 예를 들어 "최소 필요 피로도"가 80, "소모 피로도"가 20인 던전을 탐험하기 위해서는 유저의 현재 남은 피로도는 80 이상 이어야 하며, 던전을 탐험한 후에는 피로도 20이 소모됩니다. 이 게임에는 하루에 한 번씩 탐험할 수 있는 던전이 여러개 있는데, 한 유저가 오늘..
[Python] 파이썬 별표 의미 및 역할 + 자잘한 팁 한 줄 요약: 리스트 내의 아이템을 unpacking함 머신러닝 코드를 짜다가 아래와 같은 feature_engine object들을 문자열로 받아 한꺼번에 파이프라인에 넣어야 하는 일이 생겼다. feature = ['feature_engine.outliers.trimmer.OutlierTrimmer', 'feature_engine.outliers.power.PowerTransformer'] 파이프라인은 아래와 같이 estimator object 타입 리스트를 받는다고 되어있어 eval로 덮어주면 끝인줄 알았으나, 원했던 것처럼 OutlierTrimmer를 거치고 PowerTransformer를 거치는 것이 아니라 오른쪽과 같이 리스트에 담겨서 한꺼번에 처리되게 되었다. 이 때 아래와 같이 iterate..
[백준/C++] 11140번 LOL 해설 문제 해석 문제 풀이 문제를 조금만 살펴보면 삭제하는 경우는 고려할 필요가 없으며 추가하거나 수정하는 경우만 생각하면 된다는 것을 알 수 있다. 삭제하는 경우는 l과 l사이에 문자열이 있는 경우인데 문자열이 1개보다 많은 경우면 결국 2개를 삭제해주는 것보다 l 앞이나 뒤에 2개의 문자를 추가하는 경우가 더 이득임을 알 수 있다. 고려사항 결국 아래에 산정된 경우만 고려하면 통과할 수 있는 문제가 된다. L과 L 사이에 문자가 1개 경우 - 문자 1개 추가 lo, ol, ll인 경우 - 문자 1개 추가 o, l - 문자 2개 추가 lol - 문자 추가 x 코 드 #include using namespace std ; int N ; int main() { cin >> N ; while(N--) { stri..