전체 글 669

코드 청킹 연습하기(1)

코드 청킹 연습 코드 신속하게 읽는 방법 - 청크(Chunk) 코드를 신속하게 읽는데 어려움을 느끼는 이유는 '생소'하기 때문이다. 생소한 코드는 장기기억이 아닌 단기기억에 기억되는데, 이런 단기기억공간을 두고 lordofkangs.tistory.com 위 포스팅을 토대로 청킹연습을 해보려고 한다. 코드베이스 def sequential_search(n, target, array) : for i in range(n) if array[i] == target: return i + 1 input_data = input().split() n = int(input_data[0]) target = input_data[1] array = input().split() print(sequential_search(n,tar..

[python] 백준 2750번 수 정렬하기1 : 퀵소트(QuickSort)

문제) 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 알고리즘) [알고리즘] 퀵 정렬 (Quick Sort) 퀵 정렬(Quick Sort)은 이름 그대로 정렬을 빠르게 하는 알고리즘이다. 그러나 버블정렬에 비해 빠를 뿐, 이름만큼 가장 빠른 정렬 알고리즘은 아니다. 퀵 정렬(Quick Sort) 알고리즘이란? 정렬 알고리 lordofkangs.tistory.com 위 개념은 JAVA언어로 구현되어 있는데 파이썬 언어로 바꾸어 실행한 결과, 메모리초과가 발생했다. 원인은 파악하는 중이다. 그래서 원리는 같지만 조금 ..

코드 청킹 연습

코드 신속하게 읽는 방법 - 청크(Chunk) 코드를 신속하게 읽는데 어려움을 느끼는 이유는 '생소'하기 때문이다. 생소한 코드는 장기기억이 아닌 단기기억에 기억되는데, 이런 단기기억공간을 두고 STM(Short-Term Memory)이라 부른다. STM은 lordofkangs.tistory.com 지난 포스팅에서는 코드를 신속하게 읽기 위한 방법으로 청크(Chunk)에 대해서 알아보았다. 많은 사람이 코드를 많이 작성해보는 것으로 프로그래밍을 학습하지만 효과적인 방법이 아닐 수 있다. 개발자는 실제로 코드를 작성하는 것보다 보는 경우가 더 많다. 그러므로 코드를 청킹하여 신속하게 파악하는 방법을 의도적으로 연습할 필요가 있다. 1. 코드선정 과거에 작성했던 코드를 하나 선택한다. ( 잘 아는 코드여도 ..

코드 표식 파악 연습

코드 신속하게 읽는 방법 - 청크(Chunk) 코드를 신속하게 읽는데 어려움을 느끼는 이유는 '생소'하기 때문이다. 생소한 코드는 장기기억이 아닌 단기기억에 기억되는데, 이런 단기기억공간을 두고 STM(Short-Term Memory)이라 부른다. STM은 lordofkangs.tistory.com 지난 포스팅에서 코드를 신속하게 읽기 위한 방법 에 대해서 알아 보았다. 이번 포스팅에서는 표식(Beacon) 파악 연습에 대해서 다루어보겠다. 표식(Beacon) 숙련된 개발자는 코드를 읽고 이해할 때 표식을 많이 이용하지만 초급 개발자는 그렇지 않다. 표식파악연습이란, 변수명, 주석, 메소드명에서 힌트를 얻어 코드가 어떤 기능을하는지를 파악하는 연습이다. def print_in_order(root): if..

[python] 백준 2750번 수 정렬하기1 : 버블 정렬(BubbleSort) 향상시키기

문제 ) 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 알고리즘) [알고리즘] 버블정렬 향상 시키기 버블정렬은 가장 쉽고 이해하기 쉬운 정렬이다. 그러나 시간복잡도가 O(n2)이어서 효율이 좋지 않다. 7개의 수를 일차원 배열에 저장하였다. 이제 버블정렬을 사용하여 오름차순으로 바꾸어 보자 lordofkangs.tistory.com 코드) 1) 교환횟수 카운트하여 버블정렬 향상시키기 N = int(input()) sortArr = [] for i in range(N) : sortArr.append(int(input..

[ DFS ] 음료수 얼려먹기

음료수 얼려 먹기 문제 N × M 크기의 얼음 틀이 있다. 구멍이 뚫려 있는 부분은 0, 칸막이가 존재하는 부분은 1로 표시된다. 구멍이 뚫려 있는 부분끼리 상, 하, 좌, 우로 붙어 있는 경우 서로 연결되어 있는 것으로 간주한다. 이때 얼음 틀의 모양이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하는 프로그램을 작성하라. 다음의 4 × 5 얼음 틀 예시에서는 아이스크림이 총 3개가 생성된다 입력 첫 번째 줄에 얼음 틀의 세로 길이 N과 가로 길이 M이 주어진다. (1 = maxY : return False else : return True # DFS 알고리즘 구현 함수 def dfs(x, y) : visited[x][y] = True # 방문처리 if not validateIndex(x,y) : r..

코드 신속하게 읽는 방법 - 청크(Chunk)

코드를 신속하게 읽는데 어려움을 느끼는 이유는 '생소'하기 때문이다. 생소한 코드는 장기기억이 아닌 단기기억에 기억되는데, 이런 단기기억공간을 두고 STM(Short-Term Memory)이라 부른다. STM은 용량에 제한이 있다. 코드에 혼란을 느끼는 이유(2) 코드에 혼란을 느끼는 이유(1) 코드를 보다보면 혼란에 빠질 때가 있다. 개발자가 코드를 보며 혼란에 빠지는 경우는 3가지이다. 1. 지식의 부족 2. 정보의 부족 3. 처리능력의 부족 지식의 부족 2 2 lordofkangs.tistory.com ( STM의 자세한 내용은 위 포스팅 참고바랍니다. ) 우리가 생소한 코드를 볼 때, 단기로 기억할 수 있는 데이터의 양과 시간은 정해져있다. 컴퓨터도 단기기억장치인 RAM의 용량에 따라 컴퓨터의 처..

[SpringBoot] 내장톰캣에서 Spring Boot클래스 만들기

[SpringBoot] Main클래스에서 내장톰캣 실행시키기 [SpringBoot] 외장톰캣에서 SpringMVC 구현하기 [SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전) SpringBoot는 내장톰캣을 사용한다. SpringBoot가 내장톰캣을 사용하면서 간편해진 점을 알아보기 위 lordofkangs.tistory.com 지난 포스팅에서는 내장톰캣을 활용하여 서블릿 하나를 띄어보았다. 이번에는 SpringMVC가 적용된 Spring Boot클래스를 만들어보겠다. 1. 어노테이션 만들기 import org.springframework.context.annotation.ComponentScan; import java.lang.annotation.*; @Target(E..

SPRING/Spring Boot 2023.04.02

[SpringBoot] Main클래스에서 내장톰캣 실행시키기

[SpringBoot] 외장톰캣에서 SpringMVC 구현하기[SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전) SpringBoot는 내장톰캣을 사용한다. SpringBoot가 내장톰캣을 사용하면서 간편해진 점을 알아보기 위해 우선, SpringBoot 이전에 사용했던 외장톰lordofkangs.tistory.com 지난 포스팅에는 외장톰캣을 활용한 SpringMVC를 구현해보았다. 개발자가 작성한 코드가 WAR로 압축되고 톰캣WAS로 배포된 뒤, WAS서버가 실행되어야 했다. 서버의 실행주체는 외장톰캣이다. 발상을 바꾸어, 어차피 톰캣도 JAVA언어로 구현되어있는데 톰캣을 라이브러리로 만들고 개발자가 톰캣설정 및 실행을 하는 코드를 구현하여 main 메소드로 실행시키면..

SPRING/Spring Boot 2023.04.02

[SpringBoot] 외장톰캣에서 SpringMVC 구현하기

[SpringBoot] 외장톰캣으로 WAS 띄우기 with IntelliJ(무료버전) SpringBoot는 내장톰캣을 사용한다. SpringBoot가 내장톰캣을 사용하면서 간편해진 점을 알아보기 위해 우선, SpringBoot 이전에 사용했던 외장톰캣 방식에 대해서 알아보겠다. 외장톰캣 방식이란? 개발 lordofkangs.tistory.com 지난 포스팅에서 IntelliJ에서 외장톰캣을 띄어 보았다. 이제 해당 환경에서 SpringMVC를 구현해보겠다. SprinMVC 구현 톰캣은 서블릿(Servlet)을 사용한다. 서블릿의 정의는 아래 포스팅을 참고바란다. [ JSP ] Servlet 이란? Servlet이란 Server Application Let의 줄임말이다. Let은 조각을 의미하니 서버의 조..

SPRING/Spring Boot 2023.04.02