[Algorithm] 백준_전구와 스위치_2138번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/2138문제N개의 스위치와 N개의 전구가 있다. 각각의 전구는 켜져 있는 상태와 꺼져 있는 상태 중 하나의 상태를 가진다. i(1 N개의 전구들의 현재 상태와 우리가 만들고자 하는 상태가 주어졌을 때, 그 상태를 만들기 위해 스위치를 최소 몇 번 누르면 되는지 알아내는 프로그램을 작성하시오.입력첫째 줄에 자연수 N(2 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 전구들의 현재 상태를 나타내는 숫자 N개가 공백 없이 주어진다. 그 다음 줄에는 우리가 만들고자 하는 전구들의 상태를 나타내는 숫자 N개가 공백 없이 주어진다. 0은 켜져 있는 상태, 1은 꺼져 있는 상태를 의미한다.출력첫째 줄에 답을 출력한다. 불가능한 경우에는 -1을 출력..
[Algorithm] 백준_고층 건물_1027번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/1027문제세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작)은 (i,0)부터 (i,높이)의 선분으로 나타낼 수 있다. 고층 빌딩 A에서 다른 고층 빌딩 B가 볼 수 있는 빌딩이 되려면, 두 지붕을 잇는 선분이 A와 B를 제외한 다른 고층 빌딩을 지나거나 접하지 않아야 한다. 가장 많은 고층 빌딩이 보이는 빌딩을 구하고, 거기서 보이는 빌딩의 수를 출력하는 프로그램을 작성하시오.입력첫째 줄에 빌딩의 수 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄에 1번 빌딩부터 그 높이가 주어진다..
[Algorithm] 백준_연구소_14502번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/14502문제인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다.연구소는 크기가 N×M인 직사각형으로 나타낼 수 있으며, 직사각형은 1×1 크기의 정사각형으로 나누어져 있다. 연구소는 빈 칸, 벽으로 이루어져 있으며, 벽은 칸 하나를 가득 차지한다. 일부 칸은 바이러스가 존재하며, 이 바이러스는 상하좌우로 인접한 빈 칸으로 모두 퍼져나갈 수 있다. 새로 세울 수 있는 벽의 개수는 3개이며, 꼭 3개를 세워야 한다.예를 들어, 아래와 같이 연구소가 생긴 경우를 살펴보자.2 0 0 0 1 1 00 0 1 0 1 2 00 1 1 0..
[Algorithm] SWEA_등산로 조성_1949 (JAVA)
·
Algorithm
📝문제https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV5PoOKKAPIDFAUq&categoryId=AV5PoOKKAPIDFAUq&categoryType=CODE&problemTitle=1949&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert AcademySW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!swexpertacademy.com💡풀이문제 유형완전탐색 걸린 시간75분 시간 복잡도O(TxN^2x4^D) 풀이 방법 도출 구해야 할 문제:가장 높은 봉우리부터 낮아지는 봉..
Kafka CLI 기본
·
Back-end
스프링에서 카프카 찍먹해봤다가 cli로 kafka 다루려니까 헷갈림Kafka는 대용량의 메시지를 빠르게 처리하고, 실시간 스트리밍 시스템에 자주 쓰이는 분산 메시지 큐 데이터를 ‘토픽(Topic)’이라는 논리적 단위로 관리생산자(Producer)가 메시지를 보내고, 소비자(Consumer)가 메시지를 읽음 kafka-topics.sh 명령어 : 토픽 생성, 삭제, 조회토픽 생성하기 (my-topic이라는 이름으로 파티션 3개, 복제본 1개 생성)docker compose exec kafka1 \kafka-topics.sh --create --topic \my-topic --bootstrap-server localhost:19092 \replication-factor 1 partitions 3 \par..
[Docker] MySQL 포트 충돌 에러 해결 방법
·
Back-end
dockcer로 mysql 컨테이너 띄워서 실행하고 싶은데 아래와 같은 에러가 났을 때,, Error response from daemon: Ports are not available: exposing port TCP 0.0.0.0:3306 -> 0.0.0.0:0: listen tcp 0.0.0.0:3306: bind: Only one usage of each socket address (protocol/network address/port) is normally permitted. 에러가 난 이유는 로컬에서 실행중인 mysql과 docker로 띄우려는 mysql 포트 번호가 일치해서 충돌 나는 거 해결할 수 있는 방법 중 가장 간단한 방법! (윈도우 사용자) 윈도우 검색 창 -> 서비스 검색 -> 실행..
[Algorithm] 백준_내려가기_2096번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/2096문제N줄에 0 이상 9 이하의 숫자가 세 개씩 적혀 있다. 내려가기 게임을 하고 있는데, 이 게임은 첫 줄에서 시작해서 마지막 줄에서 끝나게 되는 놀이이다.먼저 처음에 적혀 있는 세 개의 숫자 중에서 하나를 골라서 시작하게 된다. 그리고 다음 줄로 내려가는데, 다음 줄로 내려갈 때에는 다음과 같은 제약 조건이 있다. 바로 아래의 수로 넘어가거나, 아니면 바로 아래의 수와 붙어 있는 수로만 이동할 수 있다는 것이다. 이 제약 조건을 그림으로 나타내어 보면 다음과 같다.별표는 현재 위치이고, 그 아랫 줄의 파란 동그라미는 원룡이가 다음 줄로 내려갈 수 있는 위치이며, 빨간 가위표는 원룡이가 내려갈 수 없는 위치가 된다. 숫자표가 주어져 ..
[Algorithm] 백준_N과 M (9)_15663번 (JAVA)
·
Algorithm
📝문제https://www.acmicpc.net/problem/15663문제N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오.N개의 자연수 중에서 M개를 고른 수열입력첫째 줄에 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8)둘째 줄에 N개의 수가 주어진다. 입력으로 주어지는 수는 10,000보다 작거나 같은 자연수이다.출력한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다.수열은 사전 순으로 증가하는 순서로 출력해야 한다.💡풀이문제 유형백트래킹 걸린 시간50분 시간 복잡도O(N^M) 풀이 방법 도출백트래킹은 왜 매번 이리 헷갈리는지중복되는 수..
[Algorithm] Softeer_출퇴근길 (JAVA) DFS, BFS
·
Algorithm
📝문제https://softeer.ai/practice/6248 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.ai자동차로 출퇴근을 하는 동환이는 지루하지 않게 종종 길을 바꿔 다니곤 한다. 새로운 동네를 발견하는 일은 동환이의 소소한 행복이다. 동환이의 출근길과 퇴근길은 가끔 겹친다. 즉, 출근길에 들른 동네를 퇴근길에 다시 지나곤 하는 것이다. 이에 대해 곰곰이 생각하던 동환이는 이렇게 두 번 들를 수 있는 동네가 그렇게 많지 않음을 깨달았다. 도로의 연결 모양, 그리고 일방통행 여부 등으로 인해 출퇴근길 모두 방문 가능한 동네가 한정되는 것이다. 동환이의 출퇴근길은 단방향 그래프로 나타낼 수 있다. 즉, 각 동네를 1부터 n까지의 번호가 매겨진 n개의 정점으로, m개의 일방통행의..
[Algorithm] Softeer_성적 평균 (JAVA)
·
Algorithm
📝문제https://softeer.ai/practice/6294 Softeer - 현대자동차그룹 SW인재확보플랫폼 softeer.aiN명의 학생들의 성적이 학번순서대로 주어졌다. 학번 구간 [A, B]가 주어졌을 때 이 학생들 성적의 평균을 구하는 프로그램을 작성하라.제약조건1 ≤ N ≤ 106 인 정수1 ≤ K ≤ 104 인 정수1 ≤ Si ≤ 100 인 정수1 ≤ Ai ≤ Bi ≤ N입력형식첫 번째 줄에 학생 수 N과 구간 수 K가 주어진다.두 번째 줄에는 학생의 성적 Si (1 ≤ i ≤ N)가 주어진다. i + 2 (1 ≤ i ≤ K)번째 줄에는 i번째 구간 Ai, Bi가 주어진다.출력형식i번째 줄에 i번째 구간의 성적평균(소수셋째자리에서 반올림)을 출력한다.차이가 0.01이하이면 정답으로 채점..