전체 글 205

[BaekJoon] 백준 13460번_구슬탈출 2 for JAVA

https://www.acmicpc.net/problem/13459 13459번: 구슬 탈출 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' www.acmicpc.net 하루종일 고민하고 디버깅 4시간 했는데 못풀었다! 딴것보다 visited 처리를 어떻게 해야할지 감이 전혀 안잡혀서ㅠㅠ 그리고 사실 빨간색 공의 움직임만 고려하고 파란색 공은 무지성 움직이려고 했어서... 편협한 시각의 패배였다... + 문제 제대로 안읽음 여튼 그래서 남의거 참고함 visited 배열을 4차원으로 만들어서 빨간 공과 파란 공의 위치를..

알고리즘/백준 2022.10.30

[Spring] DI(Dependency Injection)와 IoC(Inversion of Control)란?

DI(Dependency Injection) DI는 유연하게 확장 가능한 객체를 만들어 두고 객체 간의 의존 관계는 외부에서 설정하는 것이다. 의존관계? - A 클래스에서 B 클래스의 객체를 멤버 변수로 갖고 있거나, B 클래스 객체의 메소드를 호출하는 관계일 때 "A 클래스가 B 클래스에 의존한다" 라고 한다. class B{ String name; public String call(){ return this.name + "입니다."; } } class A{ B b = new B(); // B 클래스의 객체를 멤버 변수로 갖는다. b.name = "농부"; String callB = b.call(); // 객체의 메소드를 호출 } // A 클래스가 B 클래스에 의존한다. 이 때 DI는 의존하는 객체를 ..

컴퓨터/WEB 2022.10.23

[Spring] 웹서버(Web Server)와 서블릿 컨테이너(Servlet Container) 의 역할과 처리 순서

웹서버(Web Server) 란? 웹 페이지를 사용자에게 전송하는 서버이다. 웹서버는 데이터를 전송하기 위해 HTTP 프로토콜을 사용한다. 사용자가 브라우저에 원하는 웹 페이지의 url을 입력하면 웹 페이지가 나타나는 것처럼 웹 서버가 하는 일은 웹페이지를 사용자에게 전송하는 것이다. 서블릿(Servlet) 이란? 자바를 사용해 클라이언트에게 동적인 웹페이지를 서비스하기 위해 사용한다. https://ticssfm.tistory.com/177?category=1007516 [Backend] Servlet, JSP 그리고 MVC 패턴 Servlet / JSP 서블릿/JSP는 자바를 사용해 동적인 웹을 만들기 위해 사용되는 프로그래밍 기술이다. 정적 웹 페이지는 미리 저장된 파일을 요청에 따라 걍 보내는거고..

컴퓨터/WEB 2022.10.23

[BaekJoon] 파이프 옮기기 1 for JAVA

https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 증말증말 어려운 문제ㅠㅠ 처음에는 완전탐색으로 모든 모양을 돌리면서 만약에 ㅡ모양일 때 \ 모양을 (1,1)에서 두었다면 dp 배열에 x y 현재모양 다음모양 이런식으로 열을 만들어서 메모이제이션을 하려고 했었다. 그런데 구현하다가 이건 아닌 것 같아서 관둠 그래서 결국 다른 사람들의 도움을 받아.... 겨우 해결(이해)한 문제이다. 일단 dp를 쓰기 위해 배열을 어떻게 ..

알고리즘/백준 2022.10.02

[프로그래머스] 보급로 for JAVA

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV15QRX6APsCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 딱 보고 전형적인 BFS 문제로 추정했다. (0,0) ~ (N-1, N-1)까지 가는 최소 비용을 구하는 문제이다. 대신 가는 곳마다 weight가 있고 그 자리에 갈 수 있는 최소 weight를 구해야 하므로... 넘넘 까다로웠다! 처음에는 그냥 BFS 구현 딱 하고 visited 처리 해줬는데 이렇게 하면 구불구불한 길이 정답일 때가 구현이 안돼서 매우매우 고민하다가... 정말 귀찮아서 하기 싫..

[프로그래머스] 로또의 최고 순위와 최저 순위 for JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/77484?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 숫자가 0인 것을 모두 맞았다고 가정했을 때 최고의 등수, 다 틀렸다고 가정했을 때 최저의 등수인 문제이다. import java.util.*; class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; Set win_num = new HashSet(); f..

[Spring] Servlet, JSP 그리고 세션을 이용한 로그인, 로그아웃 구현

저번 글 : https://ticssfm.tistory.com/177?category=1007516 [Backend] Servlet, JSP 그리고 MVC 패턴 Servlet / JSP 서블릿/JSP는 자바를 사용해 동적인 웹을 만들기 위해 사용되는 프로그래밍 기술이다. 정적 웹 페이지는 미리 저장된 파일을 요청에 따라 걍 보내는거고, 동적 웹 페이지는 서버에 있 ticssfm.tistory.com 저번 글에 이어서 이번에는 MVC 패턴을 이용하여 간단하게 로그인, 로그아웃하는 법을 포스팅 하겠다. 일단 User 정보가 들어갈 DB는 mysql을 사용하였다. DB 먼저 생성해주자 create schema study; use study; create table `user`( `id` varchar(50) ..

컴퓨터/WEB 2022.09.25

[Spring] Servlet, JSP 그리고 MVC 패턴

Servlet / JSP 서블릿/JSP는 자바를 사용해 동적인 웹을 만들기 위해 사용되는 프로그래밍 기술이다. 정적 웹 페이지는 미리 저장된 파일을 요청에 따라 걍 보내는거고, 동적 웹 페이지는 서버에 있는 데이터들을 가공해서 보여주는 방법이다. 예를 들면 로그인처럼 아이디와 비밀번호를 입력하고 로그인 버튼을 누르면 성공/실패 결과를 반환하잖아요? 그런게 동적 웹 페이지이고 이 역할을 서블릿이나 JSP로 할 수 있다. Servlet : Java에 html 코드를 작성할 수 있음 JSP : html 안에 .Java 코드를 작성할 수 있음 Servlet은 .java 파일로 만들어지고, 자바코드 안에 html을 이런 느낌으로 넣는다. doGet(){ PrintWriter out = response.getWri..

컴퓨터/WEB 2022.09.18

[프로그래머스] 입국심사 for Java

https://school.programmers.co.kr/learn/courses/30/lessons/43238 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 입국심사를 n명이 하는데에 걸리는 최소 시간을 구하는 문제이다. 근데 이제 대기자가 1,000,000,000명을 곁들인... 10억..명....? 그리고 각 심사관이 한 명을 심사하는데 걸리는 시간도 1분 이상 1,000,000,000분 이하이다. 이렇게 큰 수가 나오면 의심해볼 것 : 이분탐색 그래서 이분탐색으로 방향을 잡았다. 이분탐색이라 하믄.... left, mid, right를 정하고 반..

[BaekJoon] 백준 11053번_가장 긴 증가하는 부분 수열 for JAVA

https://www.acmicpc.net/problem/11053 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 방심했다가 여러번 틀린 문제이다. 일단 부분수열..이라고 했지만 N의 크기가 1,000까지이기 때문에 부분집합을 이용하면 큰일난다는 직감이 온다. 그렇다면 for문을 사용해서 훑어야할 것 같다! 그래서 처음에는 1000 x 1000 = 1,000,000 이므로 2중 for문을 이용해서 앞에꺼보다 뒤에꺼가 크면 cnt+1..

알고리즘/백준 2022.08.21