본문 바로가기

코드포스

[코드포스 Practice18] A. Minimum Triangulation 아 영어 왤케 어려워! Triangulation @-=! 읽고 이해 못해서 다시 읽고 읽고 하다가 아래의 Note 보고 겨우 이해했다. 진짜 읽다가 다각형...? 삼각형으로 나누는데 ...? 겹치는게 없고...? ..? ? ? ? ?? ? 썬더? 푸는 건 쉬웠다 #include #include #include #include #include #include #include #include #include using namespace std; using i64 = long long; using ii = pair; int main() { int n; scanf("%d", &n); i64 sum = 0; for (int i = 3; i 더보기
[코드포스 Practice18] 후기 ㅋㅋㅋㅋㅋㅋ 이번에도 뭐 코포가 코포하고 경채가 경채했지 1솔브 했는데 B번 소수점 유효범위 때문에 틀려서 2솔브 하기로 했다ㅋㅋ 이번에는 18분만에 A풀고 40분 동안 B풀었는데 틀려서 C번으로 넘어갔다. 근데 또 모르겠어서 D번 가고 E번 가고.. 그러다가 B번 돌아와서 B번 고치다가 틀렸다. 뒷 번호 풀면서 느낀게 또 새로운 개념 있겠다 싶었음ㅋㅋ 정말정말정말 뭐가 많구나 익숙한 문제 또 나왔음 좋겠다! 더보기
[코드포스 Practice17] E. Day at the Beach 정렬 됐는지 안 됐는지 판단 하는 건 최소값이랑 최대값으로 확인할 수 있다. 이 개념 응용해서 풀었다. #include #include #include #include #include #include #include #include #include using namespace std; using i64 = long long; int main() { int n; scanf("%d", &n); vector v(n+1); vector s(n+1); for (int i = 1; i 더보기
[코드포스 Practice17] D. Pasha and String 으음... N^2 밖에 모르겠다... 뭔가 좌우 대칭이고 뭉텅이로 바뀌고 하는 거 보면 특징 있을 것 같은데 모르겠다.... gjr??? 풀었다 바뀐 횟수 센 다음에 i = 0부터 i = size()/2까지 반복문 돌면서 계속 더해나가는데 합이 홀수라면 뒤집어야하고 합이 짝수라면 안 뒤집어도 된다. #include #include #include #include #include #include #include #include #include using namespace std; using i64 = long long; int main() { string s; cin >> s; int m; cin >> m; vector count((s.size()+1)/2, 0); for (int i = 0; i < m;.. 더보기
[코드포스 Practice17] C. MUH and Important Things 좀 찜찜한 문제.. 모든 경우의 수를 어떻게 구할지 몰라서 넘겼었다. 이거 가능한 경우가 같은게 3개 이상이거나 2/2개인 경우라 경우 나눠가면서 풀면 해결... 와..~~ 납득은 가는데 찜찜하다. 그렇게도 풀리는구나.. 이렇게 풀 것이다 #include #include #include #include #include #include #include #include #include using namespace std; using i64 = long long; void two_print(vector v[2005], vector two_index) { for (int i = 0; i < 2005; i++) { if (v[i].size() != 0) { if (i == two_index[0]) { printf.. 더보기
[코드포스 Practice17] B. Bus of Characters 문제 읽고 뭐지?? 싶었는데 푸는 건 쉬웠다. 그냥 배열로 받은 다음 정렬해주고 내향적인 사람 들어오면 순서대로 배정하고 그 위치를 다시 저장한다. 다음으로 외향인 들어오면 내향인 자리 옆에 앉게했다. 내향인 여러사람 들어오면 1->2->3 순으로 자리를 내어주면 여기서 3이 가장 큰 자리 일테니 외향인은 3부터 줬다. 그래서 큐랑 스택을 이용했음 정렬한 다음 정렬 순서대로 큐에 넣어주고 내향인이 들어오면 queue.pop()을 해준다. 그리고 내향인 자리는 stack에 넣어주고 외향인 오면 pop.. 아, 크기 순으로 정렬하면서 인덱스도 함께 저장했다. 요즘 느끼는 건데 인덱스 같이 저장해야 하는 경우 많은듯. 그래서 pair 만들어서 first에 크기 저장하고 second에 인덱스 저장한 다음 fir.. 더보기
[코드포스 Practice17] A. Vladik and flights 아 어이업서~~~ 입력 잘못 받아서 틀렸다ㅋㅋㅋㅋ 보면 100101 이런식으로 연속해서 값이 들어오기 떄문에 %1d 로 입력받거나 아님 문자열로 입력 받았어야 했다ㅋㅋㅋ 이거 중간에 알았었는데 왜 고칠 생각을 못했을까. 다른 방법이 있을 줄 알았다. 암튼 간단히 1d로 고쳐서 해결~~~ #include #include #include #include #include #include #include #include #include using namespace std; using i64 = long long; int main() { int n, a, b; scanf("%1d %1d %1d", &n, &a, &b); vector v(n); for (int i = 0; i < n; i++) { scanf("%1.. 더보기
[코드포스 Practice17] 후기 눙물.. 1솔브했다 ㅜㅠ 실력 확! 팍! 늘면 좋겠지만 정체기인듯 의미부여 하지 말고 그냥 꾸준히 풀어야지.. 이번 문제는 A, B, C, D 4문제 건드려봤는데 A는 아니 뭐가 문제인지 모르겠다. 문제 잘못 읽거나 다른 케이스가 있겠지.. B는 B했고.. C는 구현에서 막혔고.. D는 풀 수는 있겠는데 풀다가 끝났다. 게다가 시간초과 났음 더보기