2022.12.07.WED

ronglong·2022년 12월 7일
0

코드스테이츠 Day35

  1. 오전 데일리 코딩

오늘 문제는 bubble sort였는데, 재귀함수로 해보려다가 실패했다.
꽤 오래 고민함.
결국 구글링으로 버블 정렬 방법을 검색해서 풀었다.
https://st-lab.tistory.com/195

시간 복잡도를 낮추기위한 count 추가는 문제에서 제공된 힌트를 토대로 스스로 생각하여 추가했다.

밑에는 차례로 성공한 코드와 실패한 코드.

public class Solution { 
	public int[] bubbleSort(int[] arr) {

		int count =0;

		for(int i=0; i<arr.length; i++){
			for(int j=0; j<arr.length-1; j++){
				if(arr[j]>arr[j+1]){
					int num = arr[j];
					arr[j]=arr[j+1];
					arr[j+1]=num;
					count++;
				}
			}
		if(count == 0) return arr; // 이미 정렬되어 바뀌는 게 없으면
		}
		return arr;
	}
}
//망한 코드.. 재귀함수 쓰려다가 포기.
		int[] result = Arrays.copyOfRange(arr, 0, arr.length); // 5 4 3 2 1
		
			for(int i=0; i<arr.length-2; i++){
				if(arr[i]>arr[i+1]){ 
					result[i]=arr[i+1]; 
					result[i+1]=arr[i]; 
					bubbleSort(result); // 4 5 3 2 1 
				}
				if(arr[i]<=arr[i+1] && i==arr.length-2) return arr;
			}
		return arr;
  1. 아키텍처 (Architecture)
  1. 스프링 부트 (Spring Boot)
  • Spring framework 설정(setting)의 복잡함을 개선하기 위한 Spring project 중 하나. ---> Spring 구성은 Spring에게 맡기고 비즈니스 로직에만 집중 가능.
    https://start.spring.io/
    - 의존 라이브러리 자동 관리
    - 어노테이션 @ 추가하여 어플리케이션 설정 자동 구성
    - 손쉬운 빌드와 WAS(Web Application Server) 배포
    -WAS: 코드를 빌드한 결과물을 실제 웹 애플리케이션으로 실행하는 서버

<느낀 점>
오전 데일리 코딩 너무 어렵게 생각했던 것 같다.
나는 조금 복잡하게 생각하는 경향이 있는데, 로직을 단순 명료하게 생각하는 연습이 필요할 것 같다.
하지만 다양한 방법을 구상한다는 점은 셀프 칭찬함.

오늘은 아키텍처와 스프링 부트에 관한 내용을 학습했다.
스프링 프레임워크에서 가장 중요한 것은 IoC/DI 라고 들었는데, 내일부터는 이에 대해 중점적으로 학습한다. 차근히 해보자. 하다보면 익숙해지겠지.

0개의 댓글