본문 바로가기

전체 글380

[C/C++] 백준 11651번 좌표 정렬하기 2 문제풀이이 문제는 pair형을 공부하기 위해 선정했다. 여러 알고리즘 문제를 위해서는 pair를 익힐 필요가 있다. 이 문제는 두 데이터 값을 받아 비교하여 오름차순 정렬하는 것이다.1) x,y를 저장하고, 각각의 값을 비교한다.2) 이 때 두 값을 저장하기에는 pair라는 데이터타입이 매우 유용하다. pair를 이용하여 값을 저장한다.3) 정렬을 이용하여 데이터 순서를 정렬한다. 이 때 두번째 인자를 첫 번째 기준으로 하고, 같다면 첫번째 인자를 기준으로 한다. 11650번과 같이 sort 함수를 사용할 것이지만, 조건을 잘 작성해야한다. sort(v.begin(),v.end(),cmp); 세 번째 인자인 cmp를 통해 다음 조건을 적용할 것이다.- 두번째 인자를 첫 번째 기준으로 하고, 같다면 첫번.. 2025. 8. 5.
[C/C++] 백준 11650번 좌표 정렬하기 문제풀이이 문제는 pair형을 공부하기 위해 선정했다. 여러 알고리즘 문제를 위해서는 pair를 익힐 필요가 있다. 이 문제는 두 데이터 값을 받아 비교하여 오름차순 정렬하는 것이다.1) x,y를 저장하고, 각각의 값을 비교한다.2) 이 때 두 값을 저장하기에는 pair라는 데이터타입이 매우 유용하다. pair를 이용하여 값을 저장한다.3) vector 데이터타입과 묶은 vector > v;를 사용한다. 이후 정렬을 통해 값을 정렬한다. pair 데이터 타입을 정렬 돌릴 경우 첫 번째인자, 두번째 인자 순으로 오름차순 정렬하기 때문에 sort로 돌리면 된다.소스코드#include #include #include using namespace std;int main(void) { int n; cin>>n;.. 2025. 8. 5.
[C/C++] 백준 2583번 영역 구하기 문제 풀이이 문제는 DFS로 풀 수 있는 문제이다. (1) 문제에 좌측 아래가 (0,0)으로 주어져있다. 이 때 판단해야한다. 실제로 문제에 나온 좌표계로 맞출 것인지 아니면 맞출 필요가 없는지 판단해야한다.(2) 해당 문제는 반전되어서 그대로 풀어도 상관이 없다. 영역 개수와 크기만 판단하면 된다.(3) DFS로 문제를 풀었다. 영역 크기를 구하는 게 이 문제가 다른 문제와 좀 다른 부분이었다. 느낀점:이러한 좌표 문제를 만났을 땐 행과 열이 헷갈리지 않도록 변수를 구성하는게 좋은 방법이라고 생각된다.소스코드#include #include #include using namespace std;int m,n,k;int cnt;int area_size;int map[110][110];int visit[110.. 2025. 8. 4.
[C/C++] 백준 4963번 섬의 개수 문제 풀이이 문제는 DFS로 풀 수 있는 문제이다. (1) 0과 0이 입력될 때까지 계속 반복하기 때문에, while문으로 반복되게 진행하였다. 이 때 모든 변수들은 0으로 초기화시켜줘야된다. (지도나 방문체크, 카운터 등등)(2) 모든 좌표에 대한 접근을 시도한다. (for문+DFS함수 호출)(3) 접근 좌표가 방문되지 않은 곳이고 land면 방문한다.(4) 8방향으로 돌면서 다른 land를 찾고, 방문 체크한다.(5) DFS함수 호출이 마무리되면 카운터를 하나 올린다. 소스코드#include #include using namespace std;int w,h;int map[100][100];int visit[100][100];int cnt;int dx[8]={ 1,1,1,0, 0,-1,-1,-1};in.. 2025. 8. 3.