분류 전체보기 18

[백준/python] 22939번 쿠킹크루

https://www.acmicpc.net/problem/22939 문제밀가루반죽으로 잘 구워진 킴쿠키는 광활하고 평평한 들판 위에 세워진 쿠키나라의 시민이다. 킴쿠키는 케이크나라의 침략으로 어려워진 쿠키나라를 지키기 위해 할 수 있는 일이 없을까 늘 고민하는 쿠키였다. 그러던 어느날, 고민을 하면서 산책을 하던 킴쿠키는 쿠키나라의 기사단인 쿠키크루를 모집한다는 전단지를 발견하였다. 쿠키크루에 지원하기 위해서는 지원 분야에 맞는 토핑 3개를 몸에 두르고 있어야 한다. 쿠키크루의 지원 분야와 어울리는 토핑은 다음과 같다.침투단(Assassin) - 젤리(J)치유단(Healer) - 초콜릿(C)마법단(Mage) - 베리(B)방어단(Tanker) - 호두(W)킴쿠키는 쿠키크루에 가입하기로 마음을 먹었지만 쿠키..

알고리즘 2024.12.04

[python] 백준 1012번 유기농 배추

https://www.acmicpc.net/problem/1012문제차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다.한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에는 배추흰지렁..

알고리즘 2024.11.27

스프링 객체지향과 다형성

초반에 리포지토리를 구현할 때는 db 연결 없이 해쉬 맵으로 구현했었다. 멤버 리포지토리 인터페이스를 해쉬맵으로 구현한 멤버 메모리멤버리포지토리 구현체로만 연결 했었다. 하지만 이후 h2 데이터 베이스와 연결하기 위해 jdbc 맴버 리포지토리에 새롭게 구현했다.그래서 멤버 리포지토리의 인터페이스가 두개의 구현체와 연결이 된 상황이 됐다.  이때, 기존에 멤버 리포지토리와 의존관계가 있는 서비스를 어떻게 처리해야할까? 스프링 DI를 이전에 컴포넌트 스캔을 통한 자동 의존 관계 설정(@Autowired) 방식이 아닌, 자바 코드로 직접 스프링 빈(@Bean)에 등록하면 간단하게 해결할 수 있었다. @Configurationpublic class SpringConfig { private final Dat..

WEB 2024.11.25

[python] 백준 12761번 돌다리

문제https://www.acmicpc.net/problem/12761 풀이갈 수 있는 방법을 리스트에 넣어두고, 각 방법을 모두 진행하면서 도착하는 돌의 번호까지의 이동횟수에 ,이전 이전 돌까지의 이동횟수 +1 을 해주면 된다. 우선 갈 수 있는 방법은1, -1, a, -a, b, -b, *a, *b 이다. 해당 방법대로 맨처음 돌번호에 차례대로 진행시켜보자.처음 예제 대로 N, M, A, B가 각각 1, 20, 2, 3이라고 가정하자시작 돌번호(N)이 1이라고 할때, 1 + 1 = 21 - 1 = 01 + 2 = 31 + 3 = 41 - 2 = - 1 (x)1 - 3 = -2 (x)1*2 = 21*3 = 3 갈 수 있는 경우의 수는 이렇게 8가지 이다. 큐에 [2,0,3,4] 순으로 값을 넣어주고, ..

알고리즘 2024.11.24

[python] 백준 30960번 조별과제

조별 과제 https://www.acmicpc.net/problem/30960 [풀이]시도 13명 조의 어색함 값을 다 구하고 2명 조 어색함 값을 모두 구해 적절히(?) 더한다예를 들어 아래와 같은 값이 입력됐다 가정했을때,720 10 9 11 3 18 1 우선 정렬을 해주면139101118201 3 9 10 11 18 20 이 된다. 여기서 세명 조 편성의 경우는A 1 3 9B 9 10 11C 11 18 20이렇게 세가지일 것이다.(다른 경우는 어색함의 값을 최소화하는데에 불리함)A조의 어색함의 값은 9-1 = 8B조는 11-9 = 2C조는 20-11 = 9 가 된다. 각각의 값을 리스트에 넣고 L2 = [8,2,9]for i in range(0,n-2,2): a = L[i+2]-L[i] ..

알고리즘 2024.11.23

[python] 백준 2606번 바이러스

https://www.acmicpc.net/problem/2606문제신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다.예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터까지 전파되어 2, 3, 5, 6 네 대의 컴퓨터는 웜 바이러스에 걸리게 된다. 하지만 4번과 7번 컴퓨터는 1번 컴퓨터와 네트워크상에서 연결되어 있지 않기 때문에 영향을 받지 않는다.어느 날 1번 컴퓨터가 웜 바이러스에 걸렸다. 컴퓨터의 수와 네트워크 상에서 서로 연결되어 있는 정보가 주어질 때,..

알고리즘 2024.11.16

서블릿(Servlet)

서블릿동적 웹페이지를 만들 때 사용되는 자바 기반의 웹 어플리케이션 프로그래밍 기술웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해줌서버에서 실행되다가 웹 브라우저에서 요청을 하게 되면 해당 기능을 수행한 후 브라우저에 결과 전송ex) 로그인 시도를 할 때, 서버가 클라이언트에서 입력되는 아이디/비번 확인하고 결과를 응답하는데 이러한 역할을 수행하는 것특징클라이언트의 Request에 대해 동적으로 작동하는 웹 어플리케이션 컴포넌트기존의 정적 웹 프로그램의 문제점을 보완하여 동적인 여러가지 기능 제공JAVA의 스레드를 이용하여 동작MVC 패턴(model–view–controller)에서 컨트롤러로 이용됨컨테이너에서 실행보안 기능을 적용하기 쉬움  동작과정클라이언트가 웹서버에 요..

WEB 2024.11.15

[python] 백준 2579번 계단 오르기

계단 오르기https://www.acmicpc.net/problem/2579 문제계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다.예를 들어 와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다.계단 오르는 데는 다음과 같은 규칙이 있다.계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을 밟으면서 이어서 다음 계단이나, 다음 다음 계단으로 오를 수 있다.연속된 세 개의 계단을 모두 밟아서는 안 된다. 단, 시작점은 계단에 포함되지 않는다..

알고리즘 2024.11.11

[Tomcat] Web Server와 WAS, Apache Tomcat

정적 웹페이지서버에 미리 저장된 파일(HTML, Image, JavaScript 등)이 그대로 전달되는 웹페이지서버는 사용자 요청에 해당하는 저장된 웹페이지를 보냄사용자는 서버에 저장된 데이터가 변경되지 않는 한 고정된 웹페이지를 보게 됨모든 사용자는 같은 결과의 웹페이지를 서버에 요청하고 응답 받음EX) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들동적 웹페이지서버에 있는 데이터들을 스크립트에 의해 가공 처리한 후 클라이언트에게 전송하는 웹페이지사용자는 상황, 시간, 요청 등에 따라 달라지는 웹 페이지를 보게됨같은 페이지라도 사용자마다 다른 결과의 웹페이지를 서버에 요청하고 받을 수 있음대부분의 웹페이지는 동적 웹 페이지ex) 네이버 블로그, 티스토리 등..

WEB 2024.11.10

[python] 백준 17219번 비밀번호 찾기

https://www.acmicpc.net/problem/17219 문제2019 HEPC - MAVEN League의 "비밀번호 만들기"와 같은 방식으로 비밀번호를 만든 경민이는 한 가지 문제점을 발견하였다. 비밀번호가 랜덤으로 만들어져서 기억을 못 한다는 것이었다! 그래서 경민이는 메모장에 사이트의 주소와 비밀번호를 저장해두기로 했다. 하지만 컴맹인 경민이는 메모장에서 찾기 기능을 활용하지 못하고 직접 눈으로 사이트의 주소와 비밀번호를 찾았다. 메모장에 저장된 사이트의 수가 늘어나면서 경민이는 비밀번호를 찾는 일에 시간을 너무 많이 쓰게 되었다. 이를 딱하게 여긴 문석이는 경민이를 위해 메모장에서 비밀번호를 찾는 프로그램을 만들기로 결심하였다! 문석이를 도와 경민이의 메모장에서 비밀번호를 찾아주는 프로..

알고리즘 2024.11.08