[백준/c++] 14719번: 빗물
·
알고리즘/백준
https://www.acmicpc.net/problem/14719 14719번: 빗물 첫 번째 줄에는 2차원 세계의 세로 길이 H과 2차원 세계의 가로 길이 W가 주어진다. (1 ≤ H, W ≤ 500) 두 번째 줄에는 블록이 쌓인 높이를 의미하는 0이상 H이하의 정수가 2차원 세계의 맨 왼쪽 위치 www.acmicpc.net stack에 넣고 하는 걸로 생각했는데, 사실 더 간단하게 진행할 수 있다. 괜히 stack으로 하다가 헷갈려서 계속 실수했다. 양끝 블록은 웅덩이가 될 수 없기 때문에 1~w-2 블록들을 차례대로 하나씩 웅덩이가 될 수 있는지 체크해주면 된다. 양쪽에 웅덩이의 기둥이 뒬 수 있는 max left, right를 구하고 더 작은놈에서 현재 블록의 값을 빼주면 된다. 음수가 나올 수..
[백준/c++] 12919번: A와 B 2
·
알고리즘/백준
https://www.acmicpc.net/problem/12919 12919번: A와 B 2 수빈이는 A와 B로만 이루어진 영어 단어 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수빈 www.acmicpc.net 문자열 S와 T가 주어졌을 때, S를 T로 바꾸는 게임. - 문자열 뒤에 A 추가 - 문자열 뒤에 B 추가하고 뒤집기 주어진 조건을 이용해 S를 T로 만들 수 있는지 없는지 알아내는 프로그램을 작성하세요. 바꿀 수 있으면 1, 없으면 0 출력 이런 문제는 뒤집어서 생각해볼 필요도 있다. 처음엔 재귀로 모든 경우를 구했더니 시간 초과가 발생했다ㅜ #inclu..
[백준/c++] 16935번: 배열 돌리기 3
·
알고리즘/백준
https://www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 연산 모두를.. 다 구현해내면 된다. 이런 문제는 예제를 하나 잡고 규칙을 찾으면 된다. #include #include using namespace std; int n, m, r; int arr[101][101]; void one(){ for(int i=0; i
[백준/c++] 16967번: 배열 복원하기
·
카테고리 없음
https://www.acmicpc.net/problem/16967 16967번: 배열 복원하기 크기가 H × W인 배열 A와 두 정수 X와 Y가 있을 때, 크기가 (H + X) × (W + Y)인 배열 B는 배열 A와 배열 A를 아래로 X칸, 오른쪽으로 Y칸 이동시킨 배열을 겹쳐 만들 수 있다. 수가 겹쳐지면 수가 합쳐 www.acmicpc.net 처음엔 A배열 B배열 따로 해서 쭉 보면서 해야 되나.. 했는데 생각해보니 B배열은 A배열보다 행으로 X, 열로 Y만큼 추가된 사이즈다. B배열에서 x, y부터 h, w 속 원소는 A와 A가 겹친 부분이다. 그러므로 이 부분을 앞 A의 값을 빼주면 된다. #include #include using namespace std; int h, w, x, y; int..
[백준/c++] 1748번: 수 이어 쓰기 1
·
카테고리 없음
https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 처음엔 그냥 문자열로 쭉 붙였는데 시간 초과.. if문으로 n까지 자릿수 더해주기로 했는데 시간 초과 결국 다른 사람 코드를 확인했다. 그러니까 엄청 간단하게 나왔다.. 아래 코드는 i자릿수에 해당하는 숫자의 개수 더해준다. 이런 코드는 지금 상태론.. 절대 생각 못해낼 듯싶다..ㅋㅋ.. 이것도 기억해놓기로~ #include #include #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);..
[백준/c++] 1205번: 등수 구하기
·
알고리즘/백준
https://www.acmicpc.net/problem/1205 1205번: 등수 구하기 첫째 줄에 N, 태수의 새로운 점수, 그리고 P가 주어진다. P는 10보다 크거나 같고, 50보다 작거나 같은 정수, N은 0보다 크거나 같고, P보다 작거나 같은 정수이다. 그리고 모든 점수는 2,000,000,000보 www.acmicpc.net 쉬운 문제인데 진정한 문제는.. 반례 찾기였다..^^ㅋㅋㅋㅋㅋㅋㅋ 처음에는 진짜 하.. 너무 하기 싫어서 그냥 다른 사람 코드 볼까 했는데 유혹을 참고 한번 반례를 다 찾아보자! 몇 시간이 걸려도 내가 찾고 만다;;;;;라는 마음으로 하나하나 적으면서 생각해봤다. 일단 제일 중요한 조건 (10 ts >> p; for(int i=0; i> score[i]; if(p ==..
[백준/c++] 2816번: 디지털 티비
·
알고리즘/백준
https://www.acmicpc.net/problem/2816 2816번: 디지털 티비 2012년 12월 31일 새벽 4시부터 지상파 아날로그 TV방송이 종료되었다. TV를 자주보는 할머니를 위해서, 상근이네 집도 디지털 수신기를 구입했다. 원래 상근이네 집에는 KBS1과 KBS2만 나왔다. 할머니 www.acmicpc.net 처음에 이 문제를 풀 땐 아니 뭐 이렇게 조건이 없냐.. 이러면 다 다르게 답이 나오잖아 어쩔 거야! 했는데 다른 사람들의 코드를 보다가 스페셜 저지 문제가 원래 여러 답이 나오는 문제라는걸 알게 되었다..ㅋ.. 다른 사람의 코드를 보면 이게 문제다. 그 방법 말곤 다른 방법으로 풀지 못하게 된다는... 후.. 아쉽지만 여러 생각을 해봐도 이 방법이 젤 쉽고 간단한 거 같기에 ..
[백준/c++] 8979번: 올림픽
·
알고리즘/백준
https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 이건 구조체를 사용해서 풀면 좋다. 처음에는 vector pair를 어떻게 해서 풀려고 해 봤는데 국가 번호를 추가하는데 애를 먹었기 때문에 실패.. 구조체를 사용하면 굉장히 편하게 여러 변수를 사용할 수 있다. 이를 꼭 기억하도록 하자... sort함수를 사용해서 편하게 원하는 조건으로 정렬할 수 있다. 그 후, 조건대로 정렬한 배열 속에서 내 앞에 있는 원소들을 훑으면서 ..
[백준/c++] 2621번: 카드게임
·
알고리즘/백준
https://www.acmicpc.net/problem/2621 2621번: 카드게임 근우는 오늘 재미있는 카드 게임을 배우고 있다. 카드는 빨간색, 파란색, 노란색, 녹색의 네 가지 색이 있고, 색깔별로 1부터 9까지 숫자가 쓰여진 카드가 9장씩 있다. 카드는 모두 36(=4x9)장이다. www.acmicpc.net 규칙을 따라서 차례대로 구현하면 되는 문제 사실 좀 더 멋지게... 구현할 수 있을 거 같은데 괜히 꼬일 거 같아서 쭉... 규칙을 차례대로 구현해줬다. 두 가지 이상의 규칙을 적용할 수 있는 경우가 있는데 (4장의 숫자의 값이 같은데 모두 같은 색이라면? 같은 경우) 이런 경우 적용되는 규칙 중 가장 높은 점수가 나오는 걸 적용하면 된다. 그래서 우선순위를 정리해보려고 했는데 그냥 규칙..
녕이
'구현' 태그의 글 목록