ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

์ž…๋ ฅ์˜ˆ์‹œ 1

5 KimSooJin 010-1234-5678

ParkGilDong 010-2468-2468

ChungSangChul 010-1230-4567

LeeYoungHee 010-1357-2468

ChoiMyungHee 010-3458-1267 2468

 

์ถœ๋ ฅ์˜ˆ์‹œ 1

2 LeeYoungHee 010-1357-2468

3 ParkGilDong 010-2468-2468

 

 

์ฝ”๋“œ:

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

struct customer {
	char id[5];
	char* name;
	char* phone;
};

int main() {
	struct customer* ct;
	int n, cnt = 0;
	char tmp1[51], tmp2[51];
	int len1 = 0, len2 = 0;
	char num[5], temp[5];

	scanf("%d", &n);
	ct = (struct customer*)malloc(n * sizeof(struct customer));
	if (ct == NULL) {
		printf("Not enough memory!");
		return -1;
	}

	for (int i = 0; i < n; i++) {
		scanf("%s %s", tmp1, tmp2);

		len1 = strlen(tmp1);
		len2 = strlen(tmp2);

		(ct + i)->name = (struct customer*)malloc((len1 + 1) * sizeof(struct customer));
		if ((ct + i)->name == NULL) {
			printf("Not enough memory!");
			return -1;
		}
		strcpy((ct + i)->name, tmp1);

		(ct + i)->phone = (struct customer*)malloc((len2 + 1) * sizeof(struct customer));
		if ((ct + i)->phone == NULL) {
			printf("Not enough memory!");
			return -1;
		}
		strcpy((ct + i)->phone, tmp2);
	}

	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			if (strncmp((ct + i)->phone + 9, (ct + j)->phone + 9, 4) < 0) {
				strcpy(tmp1, (ct + i)->name);
				strcpy((ct + i)->name, (ct + j)->name);
				strcpy((ct + j)->name, tmp1);

				strcpy(tmp2, (ct + i)->phone);
				strcpy((ct + i)->phone, (ct + j)->phone);
				strcpy((ct + j)->phone, tmp2);
			}
			else if (strncmp((ct + i)->phone + 9, (ct + j)->phone + 9, 4) == 0) {
				if (strcmp((ct + i)->name, (ct + j)->name) < 0) {
					strcpy(tmp1, (ct + i)->name);
					strcpy((ct + i)->name, (ct + j)->name);
					strcpy((ct + j)->name, tmp1);

					strcpy(tmp2, (ct + i)->phone);
					strcpy((ct + i)->phone, (ct + j)->phone);
					strcpy((ct + j)->phone, tmp2);
				}
			}
		}
	}

	scanf("%s", num);

	for (int i = 0; i < n; i++) {
		int k = 0;
		int chk = 0;
		int flag = 0;
		for (int j = 9; j <= 12; j++) {
			if (strncmp((ct + i)->phone + 9, num, 4) == 0) {
				flag++;
				chk = i;
			}
		}
		if (flag == 4) {
			printf("%d %s %s\n", chk + 1, (ct + chk)->name, (ct + chk)->phone);
			cnt++;
		}
	}

	if (cnt == 0)
		printf("none");

	for (int i = 0; i < n; i++) {
		free((ct + i)->name);
		free((ct + i)->phone);
	}
	free(ct);

	return 0;
}

 

*4-1 ์ฝ”๋“œ์— ์˜ค๋ฆ„์ฐจ์ˆœ & ๋ฒˆํ˜ธ๊ฐ™์„ ๋•Œ ์ด๋ฆ„์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๋Š” ์ฝ”๋“œ๋งŒ ๋„ฃ์–ด์ฃผ๋ฉด ๋จ

๋ฐ˜์‘ํ˜•

'Programming > c' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[2**][๊ตฌ์กฐ์ฒด] S-๋งˆํŠธ ๊ณ ๊ฐ ์ „ํ™”๋ฒˆํ˜ธ๋ถ€ ์ €์žฅํ•ด์„œ ๊ณ ๊ฐ๋ฒˆํ˜ธ ๊ฐ™์€ ๊ณ ๊ฐ ์ •๋ณด ์ถœ๋ ฅ  (0) 2021.05.17
[2**] [๊ตฌ์กฐ์ฒด] ํ˜ธํ…” ์ •๋ณด ์ž…๋ ฅ๋ฐ›๊ณ  ์กฐ๊ฑด์— ๋งž๋Š” ์‚ฌ์ „์ƒ ๊ฐ€์žฅ ๋น ๋ฅธ ํ˜ธํ…” ์ถœ๋ ฅํ•˜๊ธฐ  (0) 2021.05.16
[2**] N๊ฐœ์˜ ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด A๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ  ๋™์ผํ•œ ๋‹จ์–ด์˜ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ, ๋‹จ์–ด์™€ ๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅ(*์ค‘๋ณต๋ฌธ์ž๋Š” ํ•œ๋ฒˆ๋งŒ)  (0) 2021.05.16
[2**] N๊ฐœ์˜ ๋‹จ์–ด๋ฅผ ํฌํ•จํ•˜๋Š” ๋ฌธ์ž์—ด A๋ฅผ ์ž…๋ ฅ๋ฐ›๊ณ ๋ฌธ์ž์—ด์—์„œ ์ค‘๋ณต๋œ ๋‹จ์–ด 1๊ฐœ๋ฅผ ์ฐพ์•„ ํ™”๋ฉด์— ์ถœ๋ ฅ  (0) 2021.05.16
[1-2ํ•™๊ธฐ 2**] ๋ฌธ์ž์—ด ์ž…๋ ฅ ๋ฐ›๊ณ  ๊ตฌ๊ฐ„ ์ •ํ•ด์„œ ๊ตฌ๊ฐ„ ์•ˆ์— ์˜์–ด ๋Œ€๋ฌธ์ž๊ฐ€ ๋ช‡๊ฐœ๋‚˜ ์žˆ๋Š”์ง€ ๊ฒ€์‚ฌ ํ›„, ๊ฐ€์žฅ ์ ์€ ๊ฒƒ ์ถœ๋ ฅํ•˜๊ธฐ, ๊ฒน์น˜๋ฉด ๋‚˜์ค‘์— ์ž…๋ ฅ๋ฐ›์€ ๋ฌธ์ž์—ด ์ถœ๋ ฅํ•˜๊ธฐ  (0) 2021.01.08