๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ง๊ฐ๋กœ๊ทธ

ํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€ WEEK5 Day 34 ๋ณธ๋ฌธ

Krafton jungle

ํฌ๋ž˜ํ”„ํ†ค ์ •๊ธ€ WEEK5 Day 34

habbn 2024. 2. 11. 02:47
728x90
๐Ÿ“†2024.2.10

 

์˜ค๋Š˜์€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๊ณผ์ œ ํ’€๋ ค๊ณ  ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๋ณต์Šตํ•˜๊ณ  C์–ธ์–ด ๊ตฌํ˜„์— ์‹œ์ž‘ํ–ˆ๋‹ค.

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์—๋งŒ 7๋ฌธ์ œ์ธ๋ฐ ์˜ค๋Š˜ ํ•œ ๊ฐœ ํ–ˆ๋Š”๋ฐ ๋‚ด์ผ 6๊ฐœ ๋‹ค ๋๋‚ด๋Š”๊ฒŒ ๋‚˜์˜ ๋ชฉํ‘œ์ด๋‹ค..

๋ฃธ๋ฉ”๊ฐ€ ๋ณธ๊ฐ€์— ๋‚ด๋ ค๊ฐ€์„œ ๊ธฐ์ˆ™์‚ฌ์— ํ˜ผ์ž๋ผ ๊ทธ๋Ÿฐ์ง€ ์ด ์‹œ๊ฐ„์— TIL ์“ธ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ๊ฐ™๋‹ค. ๋‹ด์ฃผ๋ถ€ํ„ฐ๋Š” ๊ฐ•์˜์‹ค์—์„œ ๊ณต๋ถ€+TIL๊นŒ์ง€ ์จ์•ผ๋˜๋Š”๋ฐ ๋” ๋ถ€์ง€๋Ÿฐํ•ด์ ธ์•ผ๊ฒ ๋‹ค..!

 


 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ

 

[C์–ธ์–ด] ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List)

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ(Linked List)๋ž€? ๊ฐ ๋…ธ๋“œ๊ฐ€ ๋ฐ์ดํ„ฐ์™€ ํฌ์ธํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํ•œ ์ค„๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ์ด๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๋“ค์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š”๋ฐ, ๋…ธ๋“œ์˜ ํฌ์ธํ„ฐ

habbn-unitystudy.tistory.com

 

์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ๊ณต๋ถ€ํ•˜๋ฉด์„œ puts() ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค.

 

puts() ํ•จ์ˆ˜๋Š” ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค. ์˜ค์ง ๋ฌธ์ž์—ด๋งŒ ์ถœ๋ ฅํ•œ๋‹ค.

 +  printf()ํ•จ์ˆ˜๋Š” ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž, ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ•จ์ˆ˜, puts()์˜ ์ƒ์œ„ํ˜ธํ™˜ 

 

๋ฌธ์ž์—ด ์ถœ๋ ฅ ํ›„ ์ค„๋ฐ”๊ฟˆ์„ ์‹œ์ „ํ•œ๋‹ค๋Š” ์ ์ด ์žˆ์–ด ๊ณต๋ฐฑ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” puts("")๋ฅผ ๋งŒ๋“ค์–ด ์ค„๋ฐ”๊ฟˆ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

printf("\n") ๋ณด๋‹ค puts(" ")๊ฐ€ ํ•œ ์ค„ ๋น„์šธ ๋•Œ ๋” ๋นจ๋ผ์„œ ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค

 

 

๊ณผ์ œ

 

Section A - Linked Lists

 

[1] insertSortedLL() ๊ตฌํ˜„

  1. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋‹ค์Œ, ํ•ด๋‹น ์ •์ˆ˜๋ฅผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์‚ฝ์ž…ํ•œ๋‹ค.
  2. ํ˜„์žฌ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ์ •์ˆ˜๊ฐ€ ์ด๋ฏธ ์กด์žฌํ•œ๋‹ค๋ฉด ํ•ด๋‹น ์ •์ˆ˜๋ฅผ ์‚ฝ์ž…ํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
  3. ์ƒˆ ํ•ญ๋ชฉ์ด ์ถ”๊ฐ€๋œ ์ธ๋ฑ์Šค ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•˜๋ฉฐ, ํ•จ์ˆ˜๊ฐ€ ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ -1 ๊ฐ’ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  4. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๊ฐ€ ์ •๋ ฌ๋œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์ด๊ฑฐ๋‚˜ ๋น„์–ด์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
int insertSortedLL(LinkedList *ll, int item)
{
	/* add your code here */
	// 1.์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
	// 2.์ด๋ฏธ ์กด์žฌํ•˜๋ฉด ์‹คํŒจ -1 
	// 3.์ธ๋ฑ์Šค์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•ด๋ผ

	ListNode *temp;
	int curindex = 0;
	
	if(ll == NULL)
	{	
		return -1;
	}
	else	//์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ll์ด NULL์ด ์•„๋‹ˆ๋ฉด
	{
		temp = ll->head;
		while(curindex <= ll->size)	//curindex๊ฐ€ ll์˜ ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋™์•ˆ
		{
			if(curindex == ll->size) //์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์— ์•„๋ฌด๊ฒƒ๋„ ์—†์Œ	
			{
				insertNode(ll, curindex, item);
				break;
			}
			else  //(curindex < ll->size)
			{
				if(temp->item > item)
				{
					insertNode(ll, curindex, item);
					break;
				}
				else if(temp->item == item)
				{
					curindex = -1;
					break;
				}
				else{ //(temp->index < item)
					curindex = curindex +1;
					temp = temp->next;
				}
			}
		}
	}

	return curindex;
}

 

case1๊ฐ€ ์‹คํ–‰๋˜๋ฉด insertSortedLL ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ณ , i๋ฅผ ๋„˜๊ธฐ๋ฉด์„œ curindex๊ฐ€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ ll์˜ ์‚ฌ์ด์ฆˆ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋™์•ˆ ์‹คํ–‰๋œ๋‹ค.

 

์ธ๋ฑ์Šค์˜ ์œ„์น˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด  curindex ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜์—ฌ, ํ˜„์žฌ ๋…ธ๋“œ(์ฒ˜์Œ์—๋Š” head๋ฅผ ๊ฐ€๋ฆฌํ‚ด)์˜ item(๊ฐ’)๋ณด๋‹ค ์ž…๋ ฅ๋œ item์ด ์ž‘์œผ๋ฉด curindex๋ฅผ 1 ์ฆ๊ฐ€์‹œ์ผœ์ฃผ๊ณ  ๋‹ค์Œ ๋…ธ๋“œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ฒŒ ํ•œ๋‹ค.

return๋œ curindex ๊ฐ’์„ j์— ๋Œ€์ž…ํ•จ์œผ๋กœ์จ case 2๊ฐ€ ์‹คํ–‰๋˜๋ฉด ํ•ด๋‹น i์— curindex๋ฅผ ์ถœ๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค.

 

case3์€ ํ˜„์žฌ ์ •๋ ฌ๋œ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๊ณ , removeAllItems๋กœ ์ „์ฒด ์‚ญ์ œํ•œ๋‹ค.

 

 

 

 

728x90