본문 바로가기
  • "하나씩 기록하다보면 누군가에게 도움이 되지 않을까"
728x90

IT48

[백준] [자바] 15686번 : 치킨 배달 문제 출처 www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 1. 풀이 접근 ㆍ 치킨집 위치와 고객집들의 위치를 각각 저장 ㆍ 치킨집 개수 N 중 M개 만 남겼을 때의 경우의 수 추출 ( NCM의 조합 개수 만큼 나옴 ) ㆍ 각 고객집 위치에 따라 M개의 치킨집 중 가장 최소 거리 추출해서 배열에 쭉 저장 (이 배열은 각 고객집 인덱스와 매칭됌) ㆍ 각 고객집 최소거리값을 더해서 전체 최소값이랑 비교 후 출력 2. 소스코드 github.c.. 2021. 3. 23.
[백준] [자바] 14888번 : 연산자 끼워넣기 문제 출처 www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net 1. 풀이 접근 ※ 연산자 순서에 곱하기 나누기 먼저 더하기 빼기 나중에 이런식이 아님! 기존의 법칙을 따라가지 않고 무조건 순서대로 진행 입력을 받아서 숫자들 따로 배열에 저장, 더하기 빼기 곱하기 나누기는 각 1,2,3,4 숫자로 매칭 더하기 빼기 곱하기 나누기 개수에 대한 순열(순서가 있는 경우의 수) 계산 순열 순서에 따라 입력된 수들을 .. 2021. 3. 21.
[백준] [자바] 15683번 : 감시 문제 출처 www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 1. 풀이 접근 ㆍ CCTV는 최대 8개 까지 설치 할 수 있음. 가로 또는 세로 방향으로 회전 가능 - 최대 경우의 수가 4^8 나옴. ㆍ 경우의 수에 따라 카메라 특성에 맞게 탐색 가능한지 확인 - 벽을 만나거나, 경계 밖으로 나가면 취소 ※ 나는 완전 하드코딩해서 모든 경우의 수 카메라 종류 5대, 방향 4개에 맞추어 구분해서 탐색 진행하게 코드 짬. 무식하게 짬. ㆍ 탐색 다 되면 .. 2021. 3. 20.
[백준] [자바] 14501번 : 퇴사 문제 출처 www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 1. 풀이 접근 조합으로 날짜 종류 계산 기준일까지 일 할 수 있는지 확인 벌 수 있는 금액 최대 값 계산 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/master/Solve_Algs/src/Git_BJ_14501 Choi-JinYeong/Solve_Alg 알고리즘 풀이. Contribute to Choi-JinYeong/Solve_Alg development by creating an account on GitHub. github.com 3. 맺음말 체감 난이도 : 보통 백트래킹으로도 풀 수 있.. 2021. 3. 19.
[백준] [자바] 14499번 : 주사위 굴리기 문제 출처 www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지도 www.acmicpc.net 1. 풀이 접근 ㆍ주사위 모양을 배열로 정의함 - 0 뒤 0 - 좌 상 우 - 앞 - 하 ※ (주의) 입력을 받을 때 보통 생각하는 x, y 축이 바뀌어 있음. ㆍ주사위 이동 - 이동하면서 현재 주사위 값을 임시 변수에 저장하고 이동할 때마다 바뀌는 값들을 매칭해서 넣어줌 - if (이동하려고 하는 곳이 벽이면) * 이동 안함, 결과값.. 2021. 3. 19.
[백준] [자바] 14889번 : 스타트와 링크 문제 출처 : www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net 1. 풀이 접근 조합으로 nCr 구함. n은 입력으로 주어지고 r은 n/2임. 나는 home팀, away팀으로 구분하였음. (Ex. 만약 사람수가 4면 2로 조합을 구하고 나머지 2가 상대팀, 사람수가 6이면 3으로 조합을 구하고 나머지 3이 상대팀 순) home팀, away팀에 대하여 점수를 다 더해야됌 (Ex. 1,2 3,4 로 팀이 나누어졌을 경우 S12와 S21 둘다 더해야됌 away 도 마찬가지) (Ex. 1.. 2021. 3. 18.
[백준] [자바] 14891번 : 톱니바퀴 문제 출처 www.acmicpc.net/problem/14891 14891번: 톱니바퀴 총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다. 또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다. 톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴 www.acmicpc.net 1. 풀이 접근 회전하기 전에 미리 N극 S극에 대한 상태를 저장해 둠 회전할 때 기준점을 기준으로 왼쪽/오른쪽 나눠서 탐색 동시에 다 회전 ※ 소스 내에 과정에 있어서 이해하기 위해 간단한 주석 달아둠 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/blob/master/Solve_Algs/src/Git_BJ_14891/Main.java Choi-JinYeong/So.. 2021. 3. 17.
[임베디드] ESP8266 SSDP, MQTT 구현 1. 서론 STM - ESP8266으로 SSDP 프로토콜을 이용한 자동 장치 검색과 MQTT를 이용한 센서데이터 획득, 제어명령 전달을 위하여 미니 프로젝트 진행 중. 세부 목표로 ESP8266 모델에 Arduino IDE를 이용한 스케치 업로드로 SSDP 장치 검색과 MQTT 데이터 송수신 구현. 2. 본문 미니프로젝트의 시스템 아키텍처는 다음과 같다. 컨트롤러인 STM에서 데이터 보내기 전 ESP8266의 내부 펌웨어(?), 스케치(?) 코딩을 진행함. 안드로이드나 PC앱애서 SSDP로 장치 확인이 가능하도록 할 예정임. 일단 현재 목표는 안드로이드. 먼저 Arduino IDE에 ESP8266 코딩이 가능하도록 라이브러리 등록 및 환경설정을 진행하여야 함. IDE의 파일 - 환경설정에서 추가적인 보드.. 2021. 3. 9.
[가상화] [Docker] dockerfile로 Grafana, Influxdb 환경설정 1. 서론 Docker 공부 중 dockerfile을 이용해서 한번에 Grafana, Influxdb 설치 및 접속 테스트 진행 2. 본문 Dockerfile 내용 FROM ubuntu:20.04 run apt-get update && apt-get upgrade -y run apt install curl -y run apt install influxdb -y run apt install -y apt-transport-https, vim run apt install wget run apt install gnupg -y run apt install -y software-properties-common run wget -q -O - https://packages.grafana.com/gpg.key | apt.. 2021. 3. 9.
[백준] [Java] 12865번 : 배낭 채우기 문제 1. 풀이 접근 gsmesie692.tistory.com/113 Dynamic Programming: 배낭 채우기 문제 (Knapsack Problem) 도둑이 보석가게에 배낭을 메고 침입했다. 배낭의 최대 용량은 W이며, 이를 초과해서 보석을 담으면 배낭이 찢어질 것이다. 각 보석들의 무게와 가격은 알고 있다. 배낭이 찢어지지 않는 선에서 gsmesie692.tistory.com 혼자 풀다가 그리디도 써보고 DFS도 써봤는데 반례생기거나 시간초과 나길래 참고해서 문제 풀었음. 위에 분이 매우 상세하게 적어주셔서 출처로 밝힘 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/blob/master/Solve_Algs/src/BJ_12865/Main2.java Choi-JinYeo.. 2021. 3. 6.
[임베디드] ARM STM32F103 Nucleo-64 시리얼 통신 1. 서론 ARM 코딩 공부 중 시리얼 통신 필요해서 구현 중. 시리얼 통신 시 인터럽트 없으면 1글자밖에 못 받는거 인터럽트로 여러 문자 받을 수 있게 구현 2. 본문 STM32CubeMX 설정 ㄲHAL_UART_RxCpltCallback 함수로 시리얼 통신 인터럽트 발생시 아래 로직에 따라 동작 /* USER CODE BEGIN 0 */ int fputc(int ch, FILE *f){ uint8_t temp[1] = {ch}; HAL_UART_Transmit(&huart2, temp, 1, 50); return (ch); } void HAL_UART_RxCpltCallback(UART_HandleTypeDef * huart){ //** 인터럽트 시 동작 **/ if(huart->Instance ==.. 2021. 3. 2.
[파이썬] pyCharm에서 pip로 라이브러리 연결하기 1. 서론 pyCharm에서 upnpclient 라이브러리 설치하려고 시도하다 검색해서 찾아봄 2. 본문 file - settings - project이름 - python interpreter에서 + 버튼 눌러서 Available Packages로 이동 후 설치 3. 결론 정상 적용 되었음 4. 맺음말 없음 2021. 2. 24.
[백준] [Java] 17822번 : 원판 돌리기 문제 출처 : www.acmicpc.net/problem/17822 17822번: 원판 돌리기 반지름이 1, 2, ..., N인 원판이 크기가 작아지는 순으로 바닥에 놓여있고, 원판의 중심은 모두 같다. 원판의 반지름이 i이면, 그 원판을 i번째 원판이라고 한다. 각각의 원판에는 M개의 정수가 적혀 www.acmicpc.net 1. 풀이 접근 원판 회전해야 할 배수 계산 원판 회전 인접 숫자 찾기 (원판이 회전하기 때문에 x축 기준으로 끝에 도달하면 인덱스 변경해줌) 인접 숫자 있을 시 인접 숫자 삭제, 인접 숫자 없을 시 평균값 구한 뒤 평균보다 크면 +1, 작으면 -1 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/blob/master/Solve_Algorithm/src.. 2021. 2. 19.
[백준] [Java] 14502번 : 연구소 출처 : www.acmicpc.net/problem/14502 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net 1. 풀이 접근 조합으로 벽 설치 할 수 있는 경우의 수 산출 벽 설치 후 바이러스 위치 기준으로 BFS 검색 이동 가능할 때마다 바이러스 숫자 2로 변경 더 이상 탐색 불가능 시 0 개수 산출 후 최대값 비교 2. 소스코드 github.com/Choi-JinYeong/Solve_Alg/tree/master/Solve_Algs/src/Sol_BJ_14502 Choi-JinYeong/Solve_Alg 알고리즘 풀이... 2021. 2. 18.
[백준] [Java] 14500번 : 테트로미노 출처 : www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net 1. 풀이 접근 테트로미노 5가지 모양에 따라 기준점으로 부터 검색할 곳으로 배열로 선언 (회전시 모양도 기준점으로부터 다 미리 작성해서 반영해둠) 기준점(모든 맵 좌표)에 따라서 넘어 가면서 검색하면서 맵 안에 있을 시 더함 ㅗ 모양은 기준점으로 가운데 기준점으로 부터 BFS로 확인, 나머지모양은 기준점으로부터 DFS로 확인 (맞는지 잘 모르겠음, 그냥 이동방향에 따라서 계속 탐색) 끝까지 다 탐색해.. 2021. 2. 17.
728x90