-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
11-kokeunho #43
11-kokeunho #43
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μκ³ λ¦¬μ¦ κ°μλ λ΄€λ λ¬Έμ λΌ λ°κ°μ μ΅λλ€
λ¬Έμ λ₯Ό μ½κ³ νμκ° λλλ μκ°μ λΉκ΅ν΄μΌκ² λ€λ μκ°μ΄ λ°λ‘ λ μ¬λμ΅λλ€!
κ·Έλμ νμ μμκ³Ό λ μκ°μ λ¬Άμ΄μ μ μ₯νκ³ ,
λ μκ°μ κΈ°μ€μΌλ‘ μ λ ¬νμ΅λλ€.
κ·Έ λ€μμ κ·ΌνΈλμ΄ μμ±νμ for λ¬Έκ³Ό λκ°μ λ
Όλ¦¬λ‘ μ§νλ©λλ€.
(μ΄λ° λ¬Έμ λ λ€λ€ μκ°νλ κ² λΉμ·ν΄μ νμ΄κ° λ§μ΄λ€ λΉμ·ν κ² κ°μμ)
λ¬Έμ κ° μμλ€λ©΄ compare νλ λ°©μμ κΉλ¨Ήμλ€λ κ²....
Javaμμλ λ³΄ν΅ λλ€λ₯Ό μ¨μ λΉκ΅νλ 보λ€μ
λλ€μ μκ³ λ μμ§λ§ νλ²λ μ¨λ³Έμ μλ,,,
μ΄μ¨λ μ΄ λ¬Έμ λ λμκ° κΈ°μ€μΌλ‘ νμΈν΄μΌνλ€λ κ²μ μκ³ , μ λ ¬μ ν μ μμΌλ©΄
μ νμμλ λ¬Έμ μλ κ² κ°μ΅λλ€! κ°μ¬ν©λλ€!
CPP CODE
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool compare(const pair<int, int>& a, const pair<int, int>& b) {
if (a.second == b.second) return a.first < b.first;
return a.second < b.second;
}
int main() {
int N;
cin >> N;
vector<pair<int, int>> time;
for (int i = 0; i < N; i++) {
int s, e;
cin >> s >> e;
time.push_back(make_pair(s, e));
}
sort(time.begin(), time.end(), compare);
int cnt = 0;
int last = 0;
for (pair<int, int>& t : time) {
if (t.first >= last) {
last = t.second;
cnt++;
}
}
cout << cnt;
return 0;
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ λ κ°λλμ²λΌ μκ³ λ¦¬μ¦ λ λ°°μ λ λ¬Έμ μ¬μ μ루μ μ΄ μ½κ² μκ°λ¬μ΅λλ€. μ΄ λ¬Έμ λ₯Ό νΈλ λ°©λ²μ μ λΆ λΉμ·ν κ±°λΌ μκ°ν©λλ€. κ·Έλμ μ λ κ·ΌνΈλμ μ½λμ λΉμ·νλ° λ€λ₯Έ μ μ΄ μλ€λ©΄ μ λ μ°μ μμ νλ₯Ό μ¬μ©νλ€λ κ²μ λλ€!
μ΅μ μ°μ μμ νλ₯Ό μ¬μ©νμ¬ κ°μ₯ λ¨Όμ λλλ νμκ° topμ μ€λλ‘ νμμ΅λλ€. μ½κ°μ νΈλ¦μ μ¬μ©ν΄ {endTime, startTime} κ³Ό κ°μ΄ νμ λ£μ΄μ£Όμ΄ compareνλ ν¨μλ₯Ό λ°λ‘ λ§λ€μ§ μμλ λλλ‘ νμμ΅λλ€.
μ¦,
pq.top().second -> μμ μκ°
pq.top().first -> λλλ μκ°
// μ € λ¨Όμ λλλ λ―Έν
μ μ§ννλ€.
int lastEnd = pq.top().first;
maxMeeting++;
pq.pop();
// μ΄ν λ¨Όμ λλλ νμμμΌλ‘ μνλλ€
while (!pq.empty()) {
int start = pq.top().second;
int end = pq.top().first;
pq.pop();
// μ΄μ νμκ° λλ νλ μ§νμ λ€μ νμκ° μμλμ΄μΌ ν¨
if (lastEnd <= start) {
lastEnd = end;
maxMeeting++;
}
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
μ΄λ€ μ‘°κ±΄μ΄ μ£Όμ΄μ§κ³ μ΅λλ₯Ό ꡬνλΌ λ λ¬Έμ λ μ£Όλ‘ κ·Έλ¦¬λλ¬Έμ μ
λλ€.
λ°λΌμ 그리λ λ¬Έμ μ λ§κ² μ κ·Όνμκ³ , μ΄λ쑰건μμ μ΅λμ νμμλ₯Ό ꡬν μ μμμ§ κ³ λ―Όν΄λ³΄μμ΅λλ€.
μ¬κΈ°μ μ΄ μκ°μ΄ νΌμκ°μ λλΆλΆμ μ°¨μ§νμμ΅λλ€..
μ€μ€λ‘ 100% μμνμ§ λͺ»νμκ³ , 1νκΈ° μκ³ λ¦¬μ¦ μμ λ λ€μλ λ΄μ©μ λ μ¬λ €λ³΄λ©° νμ΄λ²μ λ μ¬λ¦¬κ² λμμ΅λλ€.
λ°λ‘ λ§μΉλ μκ°μμΌλ‘ μ λ ¬νλ κ²μ λλ€.
μ¦ μΌμ°λ§μΉλ©΄ μμͺ½μ λ°°μΉν©λλ€.
첫λ²μ§Ένμλ₯Ό μ ννκ² λλ©΄, 첫λ²μ¨°νμμ μ’
λ£μκ°μ΄ λλ²μ§Ένμμ μμμκ°λ³΄λ€ μκ±°λ κ°μμΌ ν©λλ€. μ΄λ₯Ό λ§μ‘±νλ λλ²μ§Ένμλ₯Ό μ ννκ³ μ΄λ₯Ό λ°λ³΅ν©λλ€.
κΈ°μ€μ λλλ μκ°μΌλ‘ μ‘λ μ΄μ λ μ΅λν λ§μ΄ λ£κΈ° μν΄ μ΄μ νμκ° λμ΄λμΌ λ€μ νμλ₯Ό μμν μ μκΈ° λλ¬Έμ λλ€.
import sys
input = sys.stdin.read
data = input().splitlines()
N = int(data[0])
meetings = []
for i in range(1, N+1):
start, end = map(int, data[i].split())
meetings.append((start, end))
meetings.sort(key=lambda x: (x[1], x[0]))
count = 0
end_time = 0
for start, end in meetings:
if start >= end_time:
count += 1
end_time = end
print(count)
- μΆκ°λ‘ μκ²λ μ .
-
νμ΄μ¬μμ μ½ν λ¬Έμ λ₯Ό νλ μ λ ₯μ inputμΌλ‘ λ°μλκ° μκ³ input = sys.stdin.readλ‘ μ½μλκ° μλλ° μ΄ κΈ°μ€μ λλ΅ N >= 10,000μΌλλ‘ μ‘λκ² μ’μ΅λλ€.
-
μ¬λ¬ κΈ°μ€μΌλ‘ μ λ ¬μ΄ νμν λ
meetings.sort(key=lambda x: (x[1], x[0]))
μ΄λ¬ν λ°©μμ μ£Όλ‘ νμ΄μ¬μμ μ¬μ©ν©λλ€.
x[1]μ μ’
λ£μκ°μ μ°μ κΈ°μ€μΌλ‘ μ λ ¬νλ€λ λ»μ΄κ³ ,
x[0]μ μ’
λ£μκ°μ΄ κ°μλ λλ²μ§Έ κΈ°μ€μΌλ‘ μλν©λλ€.
μ°Έκ³ λ‘ lambdaλ κ°λ¨ν λ‘μ§μ μΌμμ μΌλ‘ μ μν΄μΌν λ μ¬μ©νκ³
add = lambda x, y: x + y
print(add(2, 3)) # μΆλ ₯: 5
μ΄λ°μμΌλ‘ μ¬μ©λ©λλ€.
π λ¬Έμ λ§ν¬
[BOJ] νμμ€ λ°°μ https://www.acmicpc.net/problem/1931
βοΈ μμλ μκ°
50min
β¨ μλ μ½λ
κ° νμμ μμκ³Ό λμ meetings λ°°μ΄μ λ£μ΅λλ€.
λμ κΈ°μ€μΌλ‘ μ λ ¬νκ³ λμ΄ κ°λ€λ©΄ μμμ κΈ°μ€μΌλ‘ μ λ ¬ν©λλ€.
μ λ ¬λ λ°°μ΄μ λλ©΄μ
ν΄λΉ νμμ μμ μκ°μ΄ μ΄μ νμμ λλ³΄λ€ λ¦λ€λ©΄
count κ°μ μΆκ°νκ³ μ΄μ νμ λ μκ°μ κ°±μ μν΅λλ€.
κ·Έ κ²°κ³Ό μ΅λ νμ κ°μλ₯Ό ꡬν μ μμ΅λλ€.
π μλ‘κ² μκ²λ λ΄μ©
λ¬Έμ μ체λ μ΄λ ΅μ§ μμλλ°
μλ° μ λ ¬μ μμ§ λͺ°λΌκ°μ§κ³ ... κ²μ ν΄λ΄€μ΅λλ€.
μ΄λ² λ¬Έμ μμ μ λ ¬κ³Ό λλ€ ννμμΌλ‘ μ΅λͺ ν¨μλ₯Ό μμ±νλ λ²λ λ°°μ μ΅λλ€.