🤨2022.09.20

일일 회고 40회차

할일 및 한일

경험 및 배움

오늘은 오전에 전공 수업을 들은 후, 오후에 과제 및 알고리즘 풀이를 하고 디자인 패턴 세미나를 참석하였다.

우선 컴퓨터 네트워크 수업 과제를 완료하였는데, 한편으로는 쉽지만 또 한편으로는 어려운 것 같다. 현재 ip주소에 관한 내용을 배우고 있는데, 예를 들어 라우터 R1에 주소가 도달되려면 포워딩을 어떤 과정을 거쳐서 전달되는지, 서브넷 마스크와 destination address를 통해서 network address를 구하는 등 공부를 하는중이다.

알고리즘 문제 풀이 및 정리

오늘은 처음으로 알고리즘 문제를 풀어보고, 풀이 과정을 notion에 정리 및 github에 업로드 하였다.

우선 느낀 것이 아직 자바의 컬렉션 부분, 기본적인 api 클래스 부분을 아는 것이 많이 없어서 풀 때 많이 부족하다는 것을 느꼈다. 앞으로 세미나도 계속해서 예정되어 있지만 혼자서도 계속 개인적인 공부는 필수 인 것 같다.

처음으로는 문자열에 대한 간단한 알고리즘 문제 였는데, 조건은 다음과 같다.

[설명]

한 개의 문자열을 입력받고, 특정 문자를 입력받아 해당 특정문자가 입력받은 문자열에 몇 개 존재하는지 알아내는 프로그램을 작성하세요.

대소문자를 구분하지 않습니다.문자열의 길이는 100을 넘지 않습니다.

[입력]

첫 줄에 문자열이 주어지고, 두 번째 줄에 문자가 주어진다.

문자열은 영어 알파벳으로만 구성되어 있습니다.

[출력]

첫 줄에 해당 문자의 개수를 출력한다.

[예시]

입력 : Computercooler , c

출력 : 2

우선 문제를 보았을 때 어떻게 해야 접근을 할 수 있을까는 구상은 해보았지만 아직 실력이 부족하여 혼자 힘으로 풀어보지는 못하였다.

하지만 배워가는 것은 정말 많은 것 같다. 문제 풀이를 통해 직접 배우니 더 잘 와닿고, 개념만 보는 것보다는 훨씬 나은것 같다.

이번 문제에서는 toUpperCase() , charAt() 메소드를 사용해보았고, 문자열이 아닌 char 타입인 '문자' 에서는 toUpperCase() 메소드를 사용할 때도 Character 클래스를 참조해야 한다는 것 또한 알게 되었다.

자세한 코드와 정리는 notion과 github에 첨부한다.

이것이 자바다 9장(중첩 클래스 / 인터페이스) 40%

클래스 안의 클래스, 클래스 내부의 인터페이스에 대해 전부터 항상 왜쓰는지, 어디에 쓰는지 궁금했는데 좋은 기회가 되는 단원인 것 같다.

우선 중첩 클래스와 인터페이스는, 해당 외부 클래스와 긴밀한 관계를 갖는 구현 클래스를 만들 수 있어서 특정한 상황에 많이 쓰인다고 한다.

알고리즘 트리 문제를 풀 때도, 거의 필수로 쓰인다고 하니 자세히 공부해놓는 것이 좋을 것 같다.

개선 및 목표

  • 시험기간이 한달 이내로 다가왔다. 전공 공부도 놓치지 말고 미리미리 조금씩 해두자.

Last updated