danbibibi
article thumbnail
BOJ 17070번: 파이프 옮기기1
문제 풀이/백준 2023. 1. 25. 20:51

문제 문제 바로가기> BOJ 17070번: 파이프 옮기기1 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 풀이 DFS 탐색을 통해 간단하게 해결할 수 있는 문제다! 1. 파이프의 마지막 부분(초기값 : (1,2))을 추적해가면서 DFS 탐색 진행 (가로, 세로, 대각선 이동 방법이 다름) 2. 종료 조건 : 범위를 벗어나는 경우, 빈칸이어야하는 부분인 벽인 경우 (범위를 벗어나는 경우를 확인할 때, N보다 큰지만 확인해주면 된다. 더하는 방향으로만 이동하기 때문!) 3. (N, N)에..

article thumbnail
BOJ 14501번: 퇴사

문제 문제 바로가기> BOJ 14501번: 퇴사 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 풀이 dp를 이용해서, 뒤에서부터 거꾸로 오면서, 백준이가 얻을 수 있는 최대 수익을 구해 줄 수 있다. `dp[i]` : i+1 ~ N일 기간, 백준이가 얻을 수 있는 최대 수익 #include #include #define MAX 16 using namespace std; int N; int dp[MAX]; pair consult[MAX]; // time, pay void input(){ cin >> N; int t, p; for(int i=0; i> t >> p; consult[i] = {t, p}; } } void solution(){ for(i..

article thumbnail
BOJ 14891번: 톱니바퀴

문제 문제 바로가기> BOJ 14891번: 톱니바퀴 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 풀이 문제에서 요구하는 대로 구현해주면 되는 간단한 문제였다! 1. 톱니바퀴가 맞닿은 극이 같은지, 다른지 판단하여 방향을 저장한다. 2. 저장해둔 방향대로 회전을 진행한다. 3. 점수를 계산한다. 다만,, 톱니바퀴 회전 전 방향을 저장하지 않고, 회전 후 바뀐 방향으로 비교하는 바람에 조금 헤맸다 ^^,, C++ #include #include #define MAX 4 #define SIZE 8 using ..

article thumbnail
BOJ 14890번: 경사로

문제 문제 바로가기> BOJ 14890번: 경사로 14890번: 경사로 첫째 줄에 N (2 ≤ N ≤ 100)과 L (1 ≤ L ≤ N)이 주어진다. 둘째 줄부터 N개의 줄에 지도가 주어진다. 각 칸의 높이는 10보다 작거나 같은 자연수이다. www.acmicpc.net 풀이 2N 개의 길 모두를 살펴보면서 지나갈 수 있는 길의 개수를 세어주면 된다. 이때, 총 4가지 경우의 수가 있다. 1. 이전 칸과 높이가 같은 경우 ▶ 같은 높이의 칸을 세어주는 변수인 `cnt` 를 1 증가시켜준다. 2. 높이가 낮아지는 경우 (높이 차 = 1) ▶ 해당 칸을 제외하고, 앞으로 1-L개의 칸의 높이가 같아야, 경사로를 건설할 수 있다. 3. 높이가 높아지는 경우 (높이 차 = 1) ▶ 지금까지 L개 이상의 칸의 높..

article thumbnail
BOJ 17406번: 배열 돌리기 4
문제 풀이/백준 2023. 1. 19. 22:17

문제 문제 바로가기> BOJ 17406번: 배열 돌리기 4 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net 풀이 우선 K가 최대 6으로 작기 때문에, 모든 경우의 수를 탐색하는 방법으로 문제를 풀 수 있다. 문제를 풀 때 필요한 점은 다음 2가지 였던 것 같다. 1. 순열을 구현할 수 있는가? 2. 배열을 원하는 대로 조작할 수 있는가? 1(순열 구현) 을 만족하기 위해, cnt 변수와 visited 배열을 활용하여 재귀적으로 호출을 해주었다. 2(배열 조작)은 규칙을 찾는 게 중..

article thumbnail
BOJ 2206번: 벽 부수고 이동하기
문제 풀이/백준 2023. 1. 18. 23:52

문제 문제 바로가기> BOJ 2206번: 벽 부수고 이동하기 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 풀이 벽을 하나씩 제거 + BFS 하는 경우, O(N^2*M^2)으로 시간 초과가 발생한다. 생각해보면, 어느 지점(y, x)에 도착할 때, 남은 기회가 있거나 or 없거나 둘 중 하나의 상태로 도착할 것이다. 이 점을 이용해서 BFS 탐색을 진행하면, BFS를 한번만 돌려도 문제를 풀수 있다! 추가로, 가중치가 동일할 때 최단 경로를 찾는 문제이므로, 가장 먼저 (N-1, M..

article thumbnail
BOJ 21608번: 상어 초등학교

문제 문제 바로가기> BOJ 21608번: 상어 초등학교 21608번: 상어 초등학교 상어 초등학교에는 교실이 하나 있고, 교실은 N×N 크기의 격자로 나타낼 수 있다. 학교에 다니는 학생의 수는 N2명이다. 오늘은 모든 학생의 자리를 정하는 날이다. 학생은 1번부터 N2번까지 번호 www.acmicpc.net 풀이 문제를 풀 때 중요하다고 느낀 점을 몇가지 적어보겠다. 1. 자리를 정할 때 우선순위 별로 정렬하기 위해 priority_queue를 이용 * 이때, 구조체 내 연산자 재정의 방법을 알고 있어야 한다. (좋아하는 학생 수 > 빈칸 > 작은 행 번호 > 작은 열 번호) 우선으로 연산자 재정의를 해주어야 하기 때문! 2. 이미 자리가 정해진 경우 continue 해주기 이미 자리가 정해졌는데, ..

article thumbnail
HTML 정리
WEB/front-end 2023. 1. 17. 02:03

HTML(HyperText Markup Language) 이란? 웹 브라우저에 표시되도록 설계된 문서의 표준 마크업 언어 - HTML 문서라고도 불리며, HTML 태그들로 구성 - 각각의 HTML 태그는 웹 페이지의 디자인이나 기능을 결정하는데 사용됨 기본 태그 태그 의미 웹 문서의 유형을 html로 지정 문서를 html로 시작, 언어를 한국어로 지정 문서 구조 태그 태그 의미 헤더 영역 메인 영역 콘텐츠 영역 콘텐츠 영역 (독립적) 사이드 바 영역 푸터 영역 텍스트 입력 태그 의미 , , ... , 제목 (숫자가 작을수록 큼) 단락 줄 바꿈 (닫는 태그 없음) 인용문 (들여쓰기 적용) 텍스트 굵게 (주로 중요한 내용일 때) 텍스트 굵게 (단순히 굵게 표시할 때) 텍스트 기울임, (강조할 때, empha..

article thumbnail
mac MySQL, Workbench 설치

My SQL download 1. 아래 사이트로 들어가서, MySQL Community Server를 다운로드 받는다! 나는 인텔 cpu 여서, macOS 12 (x86, 64-bit) 를 다운 받았다. https://dev.mysql.com/downloads/mysql/ MySQL :: Download MySQL Community Server Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris mac..

article thumbnail
BOJ 23290번: 마법사 상어와 복제

문제 문제 바로가기> BOJ 23290번: 마법사 상어와 복제 23290번: 마법사 상어와 복제 첫째 줄에 물고기의 수 M, 상어가 마법을 연습한 횟수 S가 주어진다. 둘째 줄부터 M개의 줄에는 물고기의 정보 fx, fy, d가 주어진다. (fx, fy)는 물고기의 위치를 의미하고, d는 방향을 의미한다. 방향 www.acmicpc.net 풀이 문제를 풀 때 중요하다고 느낀 점을 몇가지 적어보겠다. 1. 배열 index 0 부터 시작할거면, 입력 시 위치, 방향 -1 해주기!! 2. 이동 못한 물고기는 제자리에 넣어주기 !! (`ismove` 변수를 이용해 찾지 못한 경우 제자리에 기존 방향으로 넣어주었다.) 안 그러면 물고기가 중간에 사라져 버리는 현상 발생 ^^ 3. 상어의 움직임 시뮬레이션할 때, ..

article thumbnail
Apache Tomcat 설치

Apache vs Apache Tomcat * Apache : Apache HTTP Server(HTTPD)라고 불리며, 오픈소스 소프트웨어 그룹인 아파치 소프트웨어 재단에서 만드는 웹서버 프로그램 * Apache Tomcat : JSP와 Servlet을 구동하기 위한 서블릿 컨테이너 역할, 아파치서버와는 다르게 DB연결, 다른 응용프로그램과 상호 작용 등 동적인 기능들 사용 가능 * 컨테이너 : 동적 데이터들을 가공하여 정적인 파일로 만들어주는 모듈 * 서블릿 : 클라이언트 요청을 받고, 요청을 처리하여, 결과를 클라이언트에게 제공하는 자바 인터페이스 (WAS 위에서 돌아가는 Java Program) * 서블릿 컨테이너 :서블릿들을 모아 관리 (새로운 요청이 들어오면 새로운 스레드 생성, 작업이 끝나면..

article thumbnail
BOJ 17143번: 낚시왕

문제 문제 바로가기 > BOJ 17143번: 낚시왕 17143번: 낚시왕 낚시왕이 상어 낚시를 하는 곳은 크기가 R×C인 격자판으로 나타낼 수 있다. 격자판의 각 칸은 (r, c)로 나타낼 수 있다. r은 행, c는 열이고, (R, C)는 아래 그림에서 가장 오른쪽 아래에 있는 칸이다. www.acmicpc.net 풀이 문제를 풀 때 중요하다고 느낀 점을 몇가지 적어보겠다. 1. 상어 이동 시 편의를 위해, num 배열을 만들고, 해당 상어의 정보(순서)를 저장해 둔다. num[r][c] = i : (r, c) 위치의 상어는 i번째 상어 ( = shark[i]의 위치는 (r, c)) 2. 시간 초과 방지를 위해 상하 이동인 경우에는, s%=(2*R-2) 좌우 이동인 경우에는, s%=(2*C-2) 을 적용..

article thumbnail
BOJ 15663번: N과 M (9)
문제 풀이/백준 2023. 1. 15. 02:49

문제 문제 바로가기> BOJ 15663번: N과 M (9) 15663번: N과 M (9) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 풀이 같은 위치에 같은 수가 오게되면, 중복 수열이 되므로, 이를 방지하기 위해 `prev` 를 이용해서 같은 자리에 같은 수가 오지 못하도록 해주었다! #include #include #define MAX 10 using namespace std; int N, M; bool isused[MAX]; int num[MAX], ans[MAX]; void input() { cin >> N >> M; for (..

article thumbnail
Web Server와 WAS
WEB/기타 2023. 1. 14. 00:23

Static Pages vs Dynamic Pages Static Pages Web Server는 파일 경로 이름을 받아 경로와 일치하는 file contents를 반환 항상 동일한 페이지 반환 ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들 Dynamic Pages 인자의 내용에 맞게 동적인 contents를 반환 웹 서버에 의해서 실행되는 프로그램을 통해서 만들어진 결과물 개발자는 Servlet에 doGet(), doPost() 등을 구현 Web Server vs WAS Web Server 하드웨어 : 웹서버가 설치되어 있는 컴퓨터 소프트웨어 : 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 ..

article thumbnail
mac JAVA Zulu Open JDK 설치

* JDK(Java Development Kit) : Java로 sw 개발을 할 수 있도록 여러 기능들을 제공하는 패키지 * Java EE(Enterprise Edition) : JavaSE + 웹 어플리케이션 서버에서 동작하는 기능을 추가한 플랫폼 JAVA Zulu Open JDK 설치 https://www.azul.com/downloads/?os=macos&architecture=x86-64-bit&package=jdk Downloads According to the Gartner report, “by 2025, more than 70% of Java applications will be deployed on third-party Java runtimes, up from 30% in 2019.” ww..