백준 15683 C++ https://www.acmicpc.net/problem/15683 고민 했던 부분은 어떻게 원복을 할 것인가였다.return값으로 vector가 되는 것을 확인했고 다음과 같이 작성했다.결국 중복되는 코드가 많아서 함수화 시켜서 해도 좋을 것 같다는 생각은 하긴 했지만 코딩 테스트니까. 이렇게만 작성했다. #include using namespace std;int n, m;int result = 987654321;int room[10][10];int dy[] = { -1, 0 ,1, 0 };int dx[] = { 0, 1, 0, -1 };vector> cctvPos;vector> watch(int cctvIndex, int dir){ vector> changed; int ny = cctvPos[cct.. 2025. 1. 30. 백준 1912 C++ https://www.acmicpc.net/problem/1912좀 다양하게 생각을 했었다.뒤에서부터 더해서 부분 합을 다 구해놓으면 어떨까?-, +가 연속해서 들어온다면 연속해서 더해서 vector에 넣은 다음에 하는건? 마지막이 코드로 작성한 방법인데처음부터 더하다가 -값이 나온다면 이미 그 후에 더하는 값은 최대값이 될 수 없다는 생각이었다.그리고 더하다가 -가 되기 전에 최대값이 있으면 최대값으로 설정했다.#include using namespace std;int n; //총 배열 길이int maxResult = -987654321;bool bIsPossitive = false;int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);.. 2025. 1. 28. 백준 15685 C++ https://www.acmicpc.net/problem/15685 첫 인상이 굉장히 무서운 문제다.드래곤 커브가 무엇인지도 잘 모르겠고 설명도 이상한데 생긴건 또 무섭다. 그래도 시도하면 할 만한 문제다.일단 드래곤 커브가 격자 밖으로 나가지 않아서 귀찮은 문제가 1개 줄었다. 그리고 다음 문제가 결국 '드래곤 커브를 어떻게 그릴 것인가'이다.종이에 그리다보면 나올 것이라고 생각되는데 말로 설명하기가 참 어렵다. 이전까지 있었던 방향을 저장하고 역순으로 조회하며 (dir+1) % 4하면 된다.아 물론 dir+1은 dy, dx를 어떻게 했느냐에 따라 다르지만 아래 코드는 그렇게 된다.한번 예제 1번만이라도 코드를 따라가보면 무슨 규칙인지 감이 올 것이다. #include using namespace st.. 2024. 12. 29. 백준 17143 C++ https://www.acmicpc.net/problem/17143 상어가 3가지 값을 가져야한다는 사실에 tuple을 사용해야겠다고 생각을 했다.그리고 상어가 잡아 먹히는 걸 처음에는 vector erase remove를 생각했는데 특정 범위까지 설정해야하는 점이 번거롭다고 생각해서 그냥 새로 넣는 방식으로 택했다.그 이유는 배열의 자체 크기가 100 * 100까지로 크기가 작다고 생각했기 때문이다. 그리고 또 어려웠던건 이동인데계속 식을 만들어서 효율적으로 이동하려고 했는데틀린 식인ny = ny + (r-1) - nowSpeed % 3 등등 다양하게 세워보다가 발견한 문제점이다시 제자리로 안 올 수 있다는 것이었다.그렇다면 그냥 nowSpeed가 충분히 크다면 cycle을 돌아서 제자리로 돌아오는 .. 2024. 11. 30. 이전 1 ··· 4 5 6 7 8 9 10 ··· 23 다음