카테고리 없음

25.01.31(금) - 본 캠프 TIL 9일차 (Today I Learned)

rxo2 2025. 1. 31. 20:56

자료구조문들과 foreach 는 아주 긴밀한 관계

List 를 반복시키고 싶다면 Length 는 사용금지  count 로 사용할것 리스트 변수도 [인덱싱]이 가능하다

 

foreach 는 컬렉션(배열, 리스트, 딕셔너리 등)을 순회할 때 사용하는 반복문(loop).
int[ ] numbers = { 10, 20, 30, 40 };

foreach (int num in numbers)

{

Console.WriteLine(num);

} 로 작성시 

10

20

30

40 으로 출력된다 문자배열을 한번씩 다 반복시켜 줌

 

리스트의 단점으로는

메모리 사용량 증가 - 배열보다 많은 메모리를 사용, 리스트로 많은 데이터를 다룰시 메모리 사용량이 급격히 증가하여 성능 저하

 

데이터 접근 시간 증가 - 리스트는 연결 리스트(linked list)로 구현, 인덱스를 이용한 데이터 접근이 배열보다 느림.

특정 인덱스의 데이터를 찾기 위해서는 연결된 노드를 모두 순회, 그로인해 데이터 접근 시간이 증가하여 성능이 저하

 

코드 복잡도 증가 - 데이터 추가, 삭제 등의 작업이 배열보다 간편. 하지만, 이러한 유연성은 코드 복잡도를 증가.

리스트를 사용할 때는 데이터 추가, 삭제 등의 작업을 적절히 처리하는 코드를 작성해야 하므로, 코드의 가독성과 유지보수성이 저하

 

메서드 예시

 static void PrintLine2(int count)
 {
     for (int i = 0; i < count; i++)
     {
         Console.Write("=");
     }
     Console.WriteLine();
 }

 static void Main(string[ ] args)
 {
     PrintLine2(20); // 20을 입력해주면 PrintLine2(int count)에 20이 똑같이 입력받아 20번 반복한다
 }

 

재귀 호출은 복잡한 문제를 단순한 방식으로 해결 가능.
사용할 때 주의해야 할 점은 종료 조건을 명확히 정의해야 하며, 종료 조건을 만족하지 못하면 무한히 재귀 호출이 반복되어 스택 오버플로우 등의 오류가 발생할 수 있습니다.

 

Person 클래스는 이름과 나이를 저장하고 출력하는 기능을 가지며 Main()에서 Person 객체를 만들고, Name과 Age를 설정한 후 PrintInfo()로 출력. 유용한 기능인것 같음

 

상속 이란 개념을 동물로 빗대어 비유하니 이해가 잘 되는듯하다

public class Animal 에 정보를 저장후 각각의 동물에게 상속을 해주는 느낌