본문 바로가기

알고리즘/백준42

[백준] 14503 로봇 청소기 C++ https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 로봇 청소기가 움직이는 규칙은 위와 같다. 문제는 쉬웠는데 y축으로 움직이는 것을 반대로 설정해서 한참 해맸다. y-1하과 y+1을 반대로 했었다. -새롭게 알게된 것 : exit(0); - 프로그램을 종료하고 싶을 때 사용. 방문했는지를 알기위해 visit이라는 배열을 따로 사용했는데 다른 사람의 코드를 보니까 벽과 빈 칸을 입력받는 배열을 사용하여 방문한 자리는 -1로 바꿔서 풀었다. 또한 .. 2022. 12. 29.
[백준] 6236 용돈 관리 c++ https://www.acmicpc.net/problem/6236 6236번: 용돈 관리 현우는 용돈을 효율적으로 활용하기 위해 계획을 짜기로 하였다. 현우는 앞으로 N일 동안 자신이 사용할 금액을 계산하였고, 돈을 펑펑 쓰지 않기 위해 정확히 M번만 통장에서 돈을 빼서 쓰기로 www.acmicpc.net 인출 횟수를 M 번을 맞춰야하며 모자라면 남은 금액은 통장에 넣고 다시 돈을 인출 할 수 있다. mid가 k 원이고 돈을 계속 쓰면 감소할 것이므로 k에다가 mid 값을 저장 해주었다. 그 후에 돈이 모자라게 되면 ( num[i]>k ) k=mid 로 해주어 다시 돈을 인출 한것처럼 해주었다. cnt가 m 보다 크게되면 인출 금액을 더 크게 해주어서 cnt를 줄여주고 cnt가 m보다 작게되면 인출 금액.. 2022. 9. 22.
[백준] LCS c++ cache[i][j]-> i,j이전까지의 LCS를 의미한다. i,j가 일치하는지 확인하고 일치하면 cache[i + 1][j + 1] 는 cache[i][j] 보다 1 길게 저장해주고 아니라면cache[i + 1][j] cache[i][j + 1] 둘 중에 하나를 저장해주면 된다. #include #include #include using namespace std; string A, B; int cache[1002][1002]; int main() { ios::sync_with_stdio(0); cin.tie(0); cin >> A >> B; for(int i=0;i 2022. 9. 21.
[백준] 11052 카드 구매하기 c++ https://www.acmicpc.net/problem/11052 11052번: 카드 구매하기 첫째 줄에 민규가 구매하려고 하는 카드의 개수 N이 주어진다. (1 ≤ N ≤ 1,000) 둘째 줄에는 Pi가 P1부터 PN까지 순서대로 주어진다. (1 ≤ Pi ≤ 10,000) www.acmicpc.net N개의 카드를 구매할 것인데 그중에서 제일 돈을 많이 지불하는 방법을 찾으면 된다. 1,,,N개까지 의 카드가 들어있는 카드팩이 가격이 다 다르다. dp[i]는 i개의 카드를 구매할 때의 최댓값이 담겨있는 배열이다. 5개의 카드를 구매할때 최댓값은 do[1]+dp[4], dp[2]+dp[3] 중에 더 큰 값이다. #include #include using namespace std; int N; int n.. 2022. 9. 11.