PS 5

CodeTON Round 1 (Div. 1 + Div. 2, Rated, Prizes!)

A. Good Pairs 아래 식을 만족하려면 각 절댓값이 >=0 이면 성립한다. 따라서, ai는 배열에서 가장 큰값, aj는 가장 작은 값이면 식이 성립한다. { val, idx } 형태로 저장해 오름차순으로 정렬해서 인덱스를 구해주었다. |ai−ak|+|ak−aj|=|ai−aj| #include using namespace std; using ll = long long; int tc; int n, a, b; int main(void) { ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); cin >> tc; while(tc--) { cin >> n; vectorv; for(int i = 0; i > a; v.push_back({ a,..

PS/코드포스 2022.03.27

Educational Codeforces Round 123 (Rated for Div. 2)

A. Doors and Keys r, g, b, R, G, B의 6자리 문자열이 주어졌을 때 R앞에 r, G앞에 g, B앞에 b가 등장하는 지 확인해서 모두 등장하면 YES, 아아니면 NO를 출력한다. #include using namespace std; using ll = long long; int tc; string str; int main() { cin.tie(NULL); cout.tie(NULL); ios::sync_with_stdio(false); cin >> tc; while (tc--) { cin >> str; bool chk1 = 0; bool chk2 = 0; bool chk3 = 0; bool possible1 = 0; bool possible2 = 0; bool possible3 = ..

PS/코드포스 2022.02.23

[BOJ] 14717 - 앉았다 (c++)

https://www.acmicpc.net/problem/14717 14717번: 앉았다 영학이의 패를 뜻하는 두 개의 정수 A, B가 주어진다. (1 ≤ A, B ≤ 10) www.acmicpc.net 풀이 영학이의 패가 2장 주어졌을 때 남은 카드는 총 18장이다. 그럼 상대방이 패를 받을 수 있는 경우의 수는 총 18C2 이다. 만약 영학이가 가지고 있는 두 장의 패가 같다면 상대방의 패도 같아야 하기 때문에 경우의 수는 153 - 10 + a 이다. 확률은 -> (float)(153 - 10 + a) / 153 으로 구했다. 만약 영학이가 가지고 있는 두 장의 패가 다르다고 해보자. 이 경우에서 조금 많이 헤맸다. 확률이 예제 출력보다 작게 나왔다. 그럼 경우의 수가 cnt가 정답보다 적게 세졌다..

PS/문제풀이 2021.11.19

[BOJ] 14923 - 미로 탈출 (C++)

https://www.acmicpc.net/problem/14923 14923번: 미로 탈출 홍익이는 사악한 마법사의 꾐에 속아 N x M 미로 (Hx, Hy) 위치에 떨어졌다. 다행히도 홍익이는 마법사가 만든 미로의 탈출 위치(Ex, Ey)를 알고 있다. 하지만 미로에는 곳곳에 마법사가 설치한 벽이 www.acmicpc.net 심심하니 쉬운 문제 풀이 글을 올려봅시다! 풀이 전형적인 bfs 문제로 파악하고 접근했다. 하지만 첫번째 제출에서 WA를 받았고 질문 게시판에서 반례를 찾을 수 있었다. 이 문제에서는 벽을 한번 부수고 이동할 수 있다. 이 처리를 제대로 해주지 못하여 WA를 받았다. bool visited[1001][1001]; int bfs(int x, int y) { // x, y, 벽 부셨..

PS/문제풀이 2021.11.15

[BOJ] 2045 - 마방진 (C++)

https://www.acmicpc.net/problem/2045 2045번: 마방진 3 by 3 크기의 마방진을 생각하자. 마방진이란 가로, 세로, 대각선 위의 수들의 합이 모두 같은 성질을 가지고 있다. 몇 가지 마방진을 예로 들면 다음과 같다. 생일빵을 맞은 정신을 잃은 동주와 www.acmicpc.net 풀이 보편적으로는 세로든 가로든 대각선이든 한 줄의 합을 구했다. 구한 합을 이용하여 지워진 곳의 값을 구하여 바꾸어 주었다. 지워진 값을 구할 때 조심해야 할 부분이 있다. 0 0 0 첫번째 행을 보면 지워진 곳이 두 곳이 있다. 이럴 경우에는 미지수가 두 개이기 때문에 지워진 값을 구할 수 없다. 따라서 이 때는 열을 이용해 지워진 값을 구하도록 구현했다. 위와 같은 방식으로 구현했을 때, 예..

PS/문제풀이 2021.10.27