2024/10 23

MVC 패턴이 무엇일까?

MVC (Model-View-Controller) 소프트웨어 설계 패턴 중 하나로 주로 웹 애플리케이션에서 많이 사용된다.이 패턴은 애플리케이션의 구조를 세 가지 역할로 분리하여 유지보수성과 확장성을 높여준다.각 요소는 서로 독립적이지만 협력하여 사용자와의 상호작용을 처리한다.      MVC의 구성 요소Model (모델)View (뷰)Controller (컨트롤러)       Model (모델)데이터와 비즈니스 로직을 담당하는 부분이다.데이터는 데이터베이스에 있는 데이터일 수도 있고, 애플리케이션 내에서 사용되는 비즈니스 상태 정보일 수도 있다. 역할모델은 애플리케이션의 핵심 데이터를 관리하며 데이터의 저장, 수정, 삭제와 같은 작업을 처리한다.또한 데이터를 다른 컴포넌트(주로 뷰)로 전달한다. 예시쇼..

[Python] 백준 2263 트리의 순회

문제n개의 정점을 갖는 이진 트리의 정점에 1부터 n까지의 번호가 중복 없이 매겨져 있다. 이와 같은 이진 트리의 인오더와 포스트오더가 주어졌을 때, 프리오더를 구하는 프로그램을 작성하시오.https://www.acmicpc.net/problem/2263        난이도골드 1     코드import syssys.setrecursionlimit(10**6)def find_tree(start_index, end_index, parent_node, left_or_right) : global root_index # print("start : " , start_index, "end : ", end_index, "parent_node : ",parent_node, "? : ", left_or..

백준풀이 2024.10.21

[Python] 백준 2098 외판원 순원

문제외판원 순회 문제는 영어로 Traveling Salesman problem (TSP) 라고 불리는 문제로 computer science 분야에서 가장 중요하게 취급되는 문제 중 하나이다. 여러 가지 변종 문제가 있으나, 여기서는 가장 일반적인 형태의 문제를 살펴보자.1번부터 N번까지 번호가 매겨져 있는 도시들이 있고, 도시들 사이에는 길이 있다. (길이 없을 수도 있다) 이제 한 외판원이 어느 한 도시에서 출발해 N개의 도시를 모두 거쳐 다시 원래의 도시로 돌아오는 순회 여행 경로를 계획하려고 한다. 단, 한 번 갔던 도시로는 다시 갈 수 없다. (맨 마지막에 여행을 출발했던 도시로 돌아오는 것은 예외) 이런 여행 경로는 여러 가지가 있을 수 있는데, 가장 적은 비용을 들이는 여행 계획을 세우고자 한..

백준풀이 2024.10.18

[Python] 백준 1562 계단 수

문제45656이란 수를 보자.이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다.N이 주어질 때, 길이가 N이면서 0부터 9까지 숫자가 모두 등장하는 계단 수가 총 몇 개 있는지 구하는 프로그램을 작성하시오. 0으로 시작하는 수는 계단수가 아니다.https://www.acmicpc.net/problem/1562       난이도골드 1      코드import sysn = int(sys.stdin.readline())dp = [[[0 for _ in range(2**10)] for _ in range(10)] for _ in range(n+1)]answer = 0mod = 1000000000for j in range(1,10) : dp[1][j][1 0 : ..

백준풀이 2024.10.17

[Python] 백준 1799 비숍

문제서양 장기인 체스에는 대각선 방향으로 움직일 수 있는 비숍(bishop)이 있다. 과 같은 정사각형 체스판 위에 B라고 표시된 곳에 비숍이 있을 때 비숍은 대각선 방향으로 움직여 O로 표시된 칸에 있는 다른 말을 잡을 수 있다. 그런데 체스판 위에는 비숍이 놓일 수 없는 곳이 있다. 에서 체스판에 색칠된 부분은 비숍이 놓일 수 없다고 하자. 이와 같은 체스판에 서로가 서로를 잡을 수 없도록 하면서 비숍을 놓는다면 과 같이 최대 7개의 비숍을 놓을 수 있다. 색칠된 부분에는 비숍이 놓일 수 없지만 지나갈 수는 있다.  정사각형 체스판의 한 변에 놓인 칸의 개수를 체스판의 크기라고 한다. 체스판의 크기와 체스판 각 칸에 비숍을 놓을 수 있는지 없는지에 대한 정보가 주어질 때, 서로가 서로를 잡을 수 없는..

백준풀이 2024.10.15

[Python] 백준 1509 팰린드롬 분할

문제세준이는 어떤 문자열을 팰린드롬으로 분할하려고 한다. 예를 들어, ABACABA를 팰린드롬으로 분할하면, {A, B, A, C, A, B, A}, {A, BACAB, A}, {ABA, C, ABA}, {ABACABA}등이 있다.분할의 개수의 최솟값을 출력하는 프로그램을 작성하시오.https://www.acmicpc.net/problem/1509      난이도골드 1        코드import sysdef palin() : for i in range(n) : isPal[i][i] = True for i in range(2,n) : ii = i for j in range(1,n+1-i) : if x[ii] == x[j] : ..

백준풀이 2024.10.15

[JAVA] 제너릭 (Generics)

제너릭자바에서 클래스나 메서드가 사용할 데이터 타입을 미리 지정하지 않고, 나중에 사용할 때 타입을 지정할 수 있도록 하는 기능     제너릭을 사용하는 이유타입 안전성제너릭을 사용하면 컴파일 시점에 타입 체크가 이루어진다. 이를 통해 잘못된 타입의 데이터를 사용하는 것을 방지할 수 있으며 런타임에서 발생할 수 있는 ClassCastException 같은 오류를 예방할 수 있다.코드 재사용성제너릭을 사용하면 다양한 데이터 타입에 대해 하나의 코드로 처리할 수 있으므로 코드의 재사용성을 높일 수 있다. 예를 들어 Integer나 String 같은 다른 타입을 처리하는 로직을 따로 만들 필요 없이 제너릭을 사용하면 하나의 로직으로 처리할 수 있다.         Generic 메서드 사용 배열 출력 예제pu..

JAVA/기초공부 2024.10.14

[JAVA] 컬렉션 (Collections)

컬렉션(Collection)여러 개의 객체를 효율적으로 저장하고 처리하기 위한 객체의 그룹자바 컬렉션 프레임워크는 이러한 컬렉션들을 다루기 위한 표준화된 API를 제공한다.이를 통해 데이터의 저장, 검색, 삭제, 정렬 등의 작업을 편리하게 수행할 수 있다.인터페이스 - "이런 기능을 해야 한다" 라는 규칙만 정의한 틀구현 클래스 - 인터페이스에서 정의한 기능을 실제로 구현한 클래스유틸리티 클래스 - 공통적인 기능(정렬, 검색 등)을 모아 놓은 클래스     주요 인터페이스Collection 인터페이스모든 컬렉션의 기본이 되는 인터페이스하위 인터페이스들과 그 구현체들이 지켜야 하는 기본적인 메서드들 정의 List순서가 있는 데이터의 집합중복된 요소를 혀용하며 인덱스를 통해 요소에 접근할 수 있다.구현 클래..

JAVA/기초공부 2024.10.13

[JAVA] java.util 패키지 내의 주요 클래스

java.util 패키지자바에서 매우 중요한 클래스들을 모아놓은 패키지데이터 구조, 날짜 및 시간 관련 클래스, 랜덤 숫자 생성, 컬렉션 프레임워크 등 다양한 유틸리티 기능 제공컬렉션 프레임워크 (Collection Framework) - 리스트, 집합, 맵날짜와 시간 클래스 - Date, Calendar, TimeZone, GregorianCalendar랜덤 숫자 생성 클래스 - Random 유틸리티 클래스 - Arrays, Collections스택과 벡터 클래스 - Stack, VectorProperties 클래스Observer 패턴 관련 클래스UUID 클래스 Comparator 인터페이스Scanner 클래스Timer 클래스       Random 클래스자바에서 난수(랜덤 숫자)를 생성하기 위해 사용..

JAVA/기초공부 2024.10.13

[JAVA] java.lang 패키지 내의 주요 클래스들

java.lang 패키지란?자바 프로그래밍의 핵심이 되는 기본 클래스들을 포함하고 있으며, 별도의 import 없이 사용할 수 있는 표준 패키지이다.ex ) Object 클래스, String 클래스, Math 클래시, System 클래스, Class 클래스, Wrapper 클래스 등등     Object 클래스자바에서 모든 클래스의 최상위 클래스모든 객체는 기본적으로 Object 클래스를 상속받는다.주요 메서드 : equals(), hashCode(), toString(), clone()     Class 클래스클래스의 메타데이터에 접근하거나 동적으로 객체를 생성하는 등의 작업을 할 수 있다.주요 메서드 : getName(), newInstance(), forName()     래퍼(Wrapper) 클래..

JAVA/기초공부 2024.10.13