#include #define MAX 52 struct building{ char b_name[30]; char b_eng; int b_num; }building[MAX]; /************************************************************************************ ************************divide and conquer À¸·Î °Ç¹° ã±â******************************* ***************************************************************************************/ int find_num(struct building[], int n ,int k, int find){ int m = n%2; if(n-m<=1) return -1; else { if(building[n+k].b_num == find) return m; else if(building[n+k].b_num > find) find_num(building, m%2, m%4-m%2, find); else find_num(building, m+k, m%2-m%4, find); } } void main(){ struct building building[MAX]; int n1, n2; char e1, e2; int distance[MAX][MAX]; int i,j,k; int s,e, bet; int bn[2]; /************************************************************************************ ******************************°Ç¹° À̸§, ¹øÈ£ ÁöÁ¤************************************ 0~11 = e 12~32 = n 33~52 = s ***************************************************************************************/ building[0].b_name = "»ç¹ü´ëÇÐ"; building[0].b_eng = 'E'; building[0].b_num =1 ; building[1].b_name = "°³½Å¹®È­°ü"; building[1].b_eng = 'E'; building[1].b_num = 2; building[2].b_name = "Á¦1 Çлýȸ°ü"; building[2].b_eng = 'E'; building[2].b_num = 3; building[3].b_name = "üÀ°°ü"; building[3].b_eng = 'E'; building[3].b_num = 4; building[4].b_name = "123Çбº´Ü"; building[4].b_eng = 'E'; building[4].b_num = 5; building[5].b_name = "Ư°íº¯Àü½Ç"; building[5].b_eng = 'E'; building[5].b_num = 6; building[6].b_name = "ÀÇ°ú´ëÇÐ"; building[6].b_eng = 'E'; building[6].b_num = 7; building[7].b_name = "°øÇаü"; building[7].b_eng = 'E'; building[7].b_num = 8; building[8].b_name = "Çכּê°øµ¿±â¼ú¿¬±¸¿ø"; building[8].b_eng = 'E'; building[8].b_num = 9; building[9].b_name = "Çп¬»ê °øµ¿ ±³À°°ü"; building[9].b_eng = 'E'; building[9].b_num = 10; building[10].b_name = "¸ñÀå"; building[10].b_eng = 'E'; building[10].b_num = 11; building[11].b_name = "¼öÀÇÇаú´ë"; building[11].b_eng = 'E'; building[11].b_num = 12; building[12].b_name = "¼öÀ§½Ç"; building[12].b_eng = 'N'; building[12].b_num = 1; building[13].b_name = "¹ýÇÐÀü¹®´ëÇпø"; building[13].b_eng = 'N'; building[13].b_num = 2; building[14].b_name = "Å״ϽºÀå °ü¸®»ç"; building[14].b_eng = 'N'; building[14].b_num = 3; building[15].b_name = "½ÅÇÐÇù·Â°ü"; building[15].b_eng = 'N'; building[15].b_num = 4; building[16].b_name = "Æò»ý±³À°¿ø"; building[16].b_eng = 'N'; building[16].b_num = 5; building[17].b_name = "°í½Ã¿ø"; building[17].b_eng = 'N'; building[17].b_num = 6; building[18].b_name = "Çü¼³°ü"; building[18].b_eng = 'N'; building[18].b_num = 7; building[19].b_name = "º¸À°±³»ç ±³À°¿ø"; building[19].b_eng = 'N'; building[19].b_num = 8; building[20].b_name = "¾ð¾î±³À°°ü"; building[20].b_eng = 'N'; building[20].b_num = 9; building[21].b_name = "´ëÇÐ º»ºÎ"; building[21].b_eng = 'N'; building[21].b_num = 10; building[22].b_name = "°øµ¿½ÇÇè½Ç½À°ü"; building[22].b_eng = 'N'; building[22].b_num = 11; building[23].b_name = "Áß¾Óµµ¼­°ü"; building[23].b_eng = 'N'; building[23].b_num = 12; building[24].b_name = "°æ¿µÇаü"; building[24].b_eng = 'N'; building[24].b_num = 13; building[25].b_name = "Àι®»çȸ°ü"; building[25].b_eng = 'N'; building[25].b_num = 14; building[26].b_name = "»çȸ°úÇдëÇÐ"; building[26].b_eng = 'N'; building[26].b_num = 15; building[27].b_name = "Àι®´ëÇк»°ü"; building[27].b_eng = 'N'; building[27].b_num = 16; building[28].b_name = "°³¼ºÀç"; building[28].b_eng = 'N'; building[28].b_num = 17; building[29].b_name = "¹ýÇаü"; building[29].b_eng = 'N'; building[29].b_num = 18; building[30].b_name = "Á¦2º»°ü"; building[30].b_eng = 'N'; building[30].b_num = 19; building[31].b_name = "»ýÈ°°úÇаü"; building[31].b_eng = 'N'; building[31].b_num = 20; building[32].b_name = "ÀºÇϼö½Ä´ç"; building[32].b_eng = 'N'; building[32].b_num = 21; building[33].b_name = "ÀÚ¿¬°úÇдëÇÐ"; building[33].b_eng = 'S'; building[33].b_num = 1; building[34].b_name = "Àü»êÁ¤º¸¿ø"; building[34].b_eng = 'S'; building[34].b_num = 2; building[35].b_name = "º»ºÎ°ü¸®µ¿"; building[35].b_eng = 'S'; building[35].b_num = 3; building[36].b_name = "¾àÇдë"; building[36].b_eng = 'S'; building[36].b_num = 4; building[37].b_name = "³óÀå"; building[37].b_eng = 'S'; building[37].b_num = 5; building[38].b_name = "ÀÚ¿¬´ë"; building[38].b_eng = 'S'; building[38].b_num = 6; building[39].b_name = "¿¡³ÊÁöÀúÀ忬±¸¼¾ÅÍ"; building[39].b_eng = 'S'; building[39].b_num = 7; building[40].b_name = "¾ß¿Ü°ø¿¬Àå"; building[40].b_eng = 'S'; building[40].b_num = 8; building[41].b_name = "¹Ú¹°°ü"; building[41].b_eng = 'S'; building[41].b_num = 9; building[42].b_name = "Â÷°í"; building[42].b_eng = 'S'; building[42].b_num = 10; building[43].b_name = "À¯·ùÀúÀåâ°í"; building[43].b_eng = 'S'; building[43].b_num = 11; building[44].b_name = "¾²·¹±â ó¸®Àå"; building[44].b_eng = 'S'; building[44].b_num = 12; building[45].b_name = "¸ñ°ø½Ç"; building[45].b_eng = 'S'; building[45].b_num = 13; building[46].b_name = "Á¦2Çлýȸ°ü"; building[46].b_eng = 'S'; building[46].b_num = 14; building[47].b_name = "Á¦1º»°ü"; building[47].b_eng = 'S'; building[47].b_num = 15; building[48].b_name = "¾ç¼ºÀç"; building[48].b_eng = 'S'; building[48].b_num = 17; building[49].b_name = "½Â¸®°ü"; building[49].b_eng = 'S'; building[49].b_num = 18; building[50].b_name = "Áß¾Ó ¿¬±¸¼Ò"; building[50].b_eng = 'S'; building[50].b_num = 19; building[51].b_name = "÷´Ü ¹ÙÀÌ¿À ¿¬±¸¼¾ÅÍ"; building[51].b_eng = 'S'; building[51].b_num = 20; building[52].b_name = "³óÇаü"; building[52].b_eng = 'S'; building[52].b_num = 21; /************************************************************************************ ********************************°Å¸®ÀÇ ±æÀÌ ÁöÁ¤************************************* ***************************************************************************************/ /************************************************************************************ ************************************Ãâ¹ßÁ¡ ÀÔ·Â*************************************** ***************************************************************************************/ do{ printf("Ãâ¹ßÁ¡ : "); scanf("%c %d",&e1,&n1); if(e1 == 'E'){ s = 0; e = 11 } else if(e1 == 'N'){ s = 12; e = 32; } else if(e1 == 'S'){ s = 33; e = 52; } bet = e-s+1; bn[0] = find_num(building, bet, bet%2, n1); if(bn[0] == -1) printf("À߸øµÈ °Ç¹°ÀÔ´Ï´Ù. ´Ù½Ã ÀÔ·ÂÇØÁÖ¼¼¿ä,"); else break; }while(1); /************************************************************************************ ************************************Ãâ¹ßÁ¡ ÀÔ·Â*************************************** ***************************************************************************************/ do{ printf("µµÂøÁ¡ : "); scanf("%c %d",&e2,&n2); if(e2 == 'E'){ s = 0; e = 11 } else if(e2 == 'N'){ s = 12; e = 32; } else if(e2 == 'S'){ s = 33; e = 52; } bet = e-s+1; bn[1] = find_num(building, bet, bet%2, n1); if(bn[1] == -1) printf("À߸øµÈ °Ç¹°ÀÔ´Ï´Ù. ´Ù½Ã ÀÔ·ÂÇØÁÖ¼¼¿ä."); }while(1); }