티스토리 뷰
>문제
> 핵심
정렬을 잘하자
>풀이과정
오늘 정렬문제만 주구장창 푸는 것 같다.
풀다보니 비슷한 유형의 반복이라는 느낌이 든다.
역시 문제를 많이 접해봐야 어떻게 해결해야 할지에 대한 느낌도 빨리빨리 오는 것 같다.
이것도 qsort 함수를 이용해 바로 풀었다. 다른 문제와 같이 크게 어렵지 않았다.
11650번 문제랑 11651번 문제랑 조건만 살짝 달라서 그냥 한 페이지에 같이 묶었다.
>깨달은점
문제를 많이 풀어봐야 유형파악도 빨리 되고 감이 잘 잡힌다.
앞으로도 열심히 풀어보자.
>코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int x;
int y;
}coord;
int compare(const void* first, const void* second)
{
coord* a = (coord*)first;
coord* b = (coord*)second;
if (a->x < b->x)
return -1;
else if (a->x > b->x)
return 1;
else
{
if (a->y < b->y)
return -1;
else
return 1;
}
return 0;
}
int main()
{
int i, n;
coord* list;
scanf("%d", &n);
list = (coord*)malloc(n * sizeof(coord));
for (i = 0; i < n; i++)
{
scanf(" %d %d", &list[i].x, &list[i].y);
}
qsort(list, n, sizeof(list[0]), compare);
for (i = 0; i < n; i++)
{
printf("%d %d\n", list[i].x, list[i].y);
}
return 0;
}
#11651
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int x;
int y;
}coord;
int compare(const void* first, const void* second)
{
coord* a = (coord*)first;
coord* b = (coord*)second;
if (a->y < b->y)
return -1;
else if (a->y > b->y)
return 1;
else
{
if (a->x < b->x)
return -1;
else
return 1;
}
return 0;
}
int main()
{
int i, n;
coord* list;
scanf("%d", &n);
list = (coord*)malloc(n * sizeof(coord));
for (i = 0; i < n; i++)
{
scanf(" %d %d", &list[i].x, &list[i].y);
}
qsort(list, n, sizeof(list[0]), compare);
for (i = 0; i < n; i++)
{
printf("%d %d\n", list[i].x, list[i].y);
}
return 0;
}
'알고리즘 > 기타' 카테고리의 다른 글
[C] 백준 | 1978번 코드 - 소수찾기 (0) | 2021.02.24 |
---|---|
[C] 백준 | 1920번 코드 - 수 찾기 (0) | 2021.02.24 |
[C] 백준 | 10989번 코드 - 수 정렬하기 3 (0) | 2021.02.24 |
[C] 백준 | 10814번 코드 - 나이순 정렬 (0) | 2021.02.24 |
[C] 백준 | 7568번 코드 - 덩치 (0) | 2021.02.24 |
댓글