분류 전체보기 381

[백준 - 25330] SHOW ME THE DUNGEON - Java

문제 설명 25330번: SHOW ME THE DUNGEON 올 여름 출시된 RPG 게임 "SHOW ME THE DUNGEON"은 주인공 시루가 몬스터에게 침략당한 마을을 구하는 내용의 게임이다. 배경이 되는 나라는 $0, 1, 2, \cdots, N$번의 번호가 붙어있는 $N+1$개의 마을로 이루 www.acmicpc.net 접근 방법 해당 문제에서는 캐릭터(시루)의 체력과 마을별 몬스터의 공격력과 주민의 수가 주어졌을 때 시루가 해방시킬 수 있는 주민들의 최대 수를 요구하고 있습니다. 접근 방법 1 : 순열 - 시간 초과 처음 이 문제에 접근했었던 방식은 시루가 각각의 던전들을 순서를 고려하면서 방문하는 모든 경우의 수(순열)를 구함으로써 해방시킬 수 있는 주민들의 최대 수를 구하는 것이었습니다. (..

Algorithm/BOJ 2022.07.10

[프로그래머스] 조이스틱 - Java

문제 설명 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 해당 문제에서는 완성해야 하는 알파벳 이름이 주어졌을 때 이를 만들기 위한 최소한의 조이스틱 조작 횟수를 요구하고 있습니다. 우선 조이스틱의 조작은 크게 알파벳 이름을 조작하는 것과 커서 이동을 조작하는 것 이 두 가지로 나뉜다고 볼 수 있습니다. 알파벳 이름 조작하기 알파벳 이름을 조작하기 위해 먼저 만들어야 할 이름의 문자와 최초 문자(A) 간 아스키 코드 값 차이를 구하도록 했습니다. 이때 이 값(gap)이 13 미만이라면 이 값만큼 조작하는 것이 최소 조작 횟수일 것이고, 13 이..

[코드업 - 4791] 사냥꾼 - Java

문제 설명 사냥꾼 첫 줄에는 사대의 수 $M$ $(1 ≤ M ≤ 100,000)$, 동물 의 수 $N$ $( 1 ≤ N ≤ 100,000)$, 사정거리 $L$ $(1 ≤ L ≤ 1,000,000,000)$이 빈칸을 사이에 두 고 주어진다. 두 번째 줄에는 사대의 위치를 나타 내는 $M$ 개 www.codeup.kr 접근 방법 해당 문제에서는 사대(총을 쏘는 장소)들의 위치와 동물들의 위치가 주어졌을 때 특정 사정거리 내에서 잡을 수 있는 동물의 수를 요구하고 있다. 그래프 탐색을 이용해볼까? 처음 내가 생각했었던 방법은 동물들의 위치를 그래프에 나타낸 후 사대별로 그래프 탐색을 통해 사정 거리 내에 있는 동물들을 소거해가는 방식을 생각했었다. 하지만 문제에서 주어지는 사정거리의 최대치는 10억이라는 값으..

Algorithm/CodeUp 2022.07.09

[프로그래머스] 소수 찾기 - Java

문제 설명 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 접근 방법 해당 문제에서는 임의의 숫자 문자열이 주어졌을 때 각각의 숫자로 만들 수 있는 수 중 소수의 개수가 몇 개인지를 요구하고 있다. 우선 주어진 숫자 문자열을 토대로 만들 수 있는 모든 경우의 수를 탐색하도록 했는데, 이때 백트래킹을 이용했다. 이후 백트래킹을 통해서 만들 수 있는 수를 탐색하면서 해당 수가 소수인지를 판별하도록 했다. 다음은 특정 수가 소수인지를 판별하는데 사용했던 로직이다. private boolean isPrime(int n) { if (n < 2) { return fa..

상태유지기술, 쿠키(Cookie)와 세션(Session)

무상태(Stateless) 프로토콜, HTTP 웹 브라우저와 웹 서버는 HTTP를 통해 데이터를 주고받으며, 웹 브라우저는 데이터 요청자로서, 웹 서버는 데이터 응답자로서 클라이언트/서버 구조를 이룬다. 이때 HTTP는 무상태 프로토콜이라고도 하는데, 서버가 해당 요청에 대한 응답을 하고 나면 그 이후로 클라이언트가 이전에 무엇을 했는지에 대한 정보를 기억하지 못하는 것이다. 이러한 점으로 인해 서버 입장에서는 확장성이 높아지는 장점이 있다. 왜냐하면 서버가 클라이언트별 정보를 별도로 저장하지 않으므로 특정 클라이언트를 전담하는 서버가 따로 존재하지 않기 때문에 클라이언트의 요청이 급격히 늘어나도 서버 입장에서는 서버 대수를 늘리면(스케일 아웃) 그만이다. 하지만 클라이언트 입장에서는 서버에 이전에 보냈..

Technology/Web 2022.07.07