1. 소개 같은 지역에 속해 있는 사람들과 주변 상권에 대한 정보를 공유할 수 있는 서비스이다. 네이버지도나 카카오맵과 같은 지도 서비스에서는 얻기 힘든, 좀 더 사소하지만 식당 결정에는 영향을 미치는 정보들을 친구들과 공유하는 것을 목표로 한다. 친구 관계를 맺은 사람들과 공유하기 때문에 신뢰도가 높고 정확한 정보를 얻을 수 있을 것으로 기대한다. 2. 아이디어 구상 계기 군대를 전역하고 2년 만에 다시 학교로 돌아가보니 주변 상권이 너무 많이 바뀌어 있었다. 없어지고 새로 생긴 식당도 많았으며 기존의 식당들도 메뉴 구성이나 가격 등에 변화가 있어 내 기억과는 사뭇 달라서 당황한 적도 있었다. 바뀐 정보들을 친구들과 공유하면 이렇게 식당에서 당황하는 일을 줄이고 유용하게 활용할 수 있지 않을까?라는 생..
분류 전체보기
https://www.acmicpc.net/problem/2538 2538번: 모눈종이 자르기 첫째 줄에는 모눈종이의 가로 길이와 세로 길이를 나타내는 자연수가 빈칸을 사이에 두고 주어진다. 가로와 세로의 길이는 모두 200000 이하이다. 둘째 줄에는 오려내고자 하는 다각형의 꼭짓점 www.acmicpc.net 완전 구현문제였다. 처음에는 조각을 판정하고 각 조각의 칸을 dfs로 돌며 모눈종이의 경계선 또는 다각형의 둘레에 접하는 수만큼 카운트하여 둘레를 직접 계산하는 것을 구현했는데 입력 조건이 가로 세로 길이가 20만이어서 시간초과가 난다는 사실을 깨달았다. 그래서 입력받은 다각형의 꼭짓점 위치를 바탕으로 조각의 둘레를 계산하는 방법으로 바꿨다. 문제에서, 다각형의 꼭짓점을 입력받을 때 시계반대방향..
https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주어진다. 그 다음 N개의 줄에는 모눈종이 위의 격자에 치즈가 있는 부분은 1로 표시되고, 치즈가 없는 부분은 0으로 www.acmicpc.net 2차원 지도에서 특정조건을 만족하는 칸부터 상태가 변하며 모든 칸의 상태가 변할 때까지 걸리는 시간을 출력하는 문제이다. 전형적인 그래프 탐색에 구현이 붙은 문제이다. 1시간이 지날때마다 지도에서 몇 가지를 체크하는데, 외부 공기. - 치즈 내부에도 공기가 있는데 내부 공기 칸의 테두리의 치즈가 녹은 경우, 해당 공기 칸을 외부 공기로 바꿔줘야 한다. - airCheck()로 구현. ..
https://www.acmicpc.net/problem/2528 구현, 시뮬레이션 문제이다. 문제에서 제시하는 상황과 조건에 맞게 사다리를 오르는 동작을 구현하여 풀었다. Pair로 벡터를 만들어 각층마다 사다리의 왼쪽 끝점의 좌표, 오른쪽 끝점의 좌표를 저장했고, 사다리의 처음 위치는 사다리의 초기 이동 방향(d)에 따라 결정되기 때문에 d값에 따라 각층 사다리의 위치와 방향을 초기화시켜 줬다. 그리고 while(true) 문 안에서 사다리들이 1단위시간에 1칸씩 좌우로 움직이고 각 단위시간마다 철수가 다음 층으로 올라갈 수 있는지 체크하고 올라갈 수 있으면 y값을 증가시켜 줬다. 위 사진과 같이 두 층의 사다리 끝점에 맞물리는 경우에도 위 층으로 이동할 수 있다는 사실을 주의해야 한다. #inclu..
https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 로봇 청소기가 주어졌을 때, 청소하는 영역의 개수를 구하는 프로그램을 작성하시오. 로봇 청소기가 있는 장소는 N×M 크기의 직사각형으로 나타낼 수 있으며, 1×1크기의 정사각형 칸으로 나누어 www.acmicpc.net 문제에서 주어진 방향 순서대로 x, y 좌표 값을 x_dir[], y_dir[]에 각각 저장해두고 사용하였으며 로봇 청소기의 동작 순서대로 코드를 구현하였다. 현재 위치와 방향을 기준으로 왼쪽 방향으로 한 바퀴 탐색하면서 해당 좌표를 청소하지 않았다면 방향, 좌표를 바꾸고 새로운 방향과 좌표로 재귀호출해 준다. 네 방향 이미 방문했거나 벽이라면 로봇 청소기의 방향은 유지하고 좌표만 뒤로 한 칸 ..
https://www.acmicpc.net/problem/17611 17611번: 직각다각형 입력의 첫 줄에는 단순직각다각형의 꼭지점의 개수를 나타내는 정수 n(4 ≤ n ≤ 100,000)이 주어지고, 이어지는 n개 줄 각각에 단순직각다각형 꼭지점의 좌표 (xi, yi)가 차례대로 주어진다. 주어지 www.acmicpc.net 꼭짓점의 개수와 좌표가 입력으로 주어지고 해당 꼭짓점들을 순서대로 연결했을 때 만들어지는 직각다각형을 수직 또는 수평으로 지나는 선을 그었을 때 교점의 최대 개수를 출력하는 문제이다. 직각다각형이라는 조건이 있으므로 이웃하는 두 꼭짓점의 x좌표, y좌표 중 하나는 무조건 같다. 따라서, 이웃하는 두 꼭짓점의 x좌표가 같을 경우, 두 점의 y좌표 중 작은 값에서 큰 값까지 반복문을..
Raspberry Pi OS(32-bit) 2022-09-22 릴리즈 Bullseye 버전 기준. 터미널 창을 열어서, hb@raspberrypi:~ $ bluetoothctl [bluetooth]# scan on 위의 명령어를 입력하면 아래와 같은 화면이 나온다. mac 주소 / 기기 이름 형식으로 출력이 되는데, 여기서 내 블루투스 스피커 이름을 찾는다. 그다음 이름을 통해서 블루투스 스피커 기기의 MAC 주소를 알아낸다. 알아낸 MAC 주소로, [bluetooth]# pair "mac주소" [bluetooth]# connect "mac주소" [bluetooth]# trust "mac주소" 를 입력하면 해당 블루투스 기기를 라즈베리파이에 연결은 성공한 것이다. trust "mac주소"는 다음부터 해당..
VNC 창 위쪽에 마우스를 갖다 대면 10개의 파란색 아이콘이 뜨는데 그중 왼쪽에서 5번째, Transfer Files를 누르면, 다음과 같은 화면이 나온다. 좌측 하단 Send files을 눌러 내 컴퓨터에서 파일을 선택하고 Fetch files to에 저장 위치를 지정하면 그 위치로 파일이 바로 보내진다. 간단하지만 모르면 고생하는, 알면 편리한 기능이다.
VNC를 쓰다 보면 화면이 VNC 창 크기에 고정되어 좀 작게 여러 창을 띄워서 보고 싶은데 창을 키우면 화면 크기가 덩달아 커져서 불편한 경우가 있다. 이러한 경우 해결 방법을 정리해보았다. RPi에서 터미널을 실행시켜서 아래 명령어를 입력한다. pi@raspberrypi:~ $ sudo nano /boot/config.txt config.txt 파일을 아래 사진과 같이 주석을 제거해주고 수정해준다. Hdmi_mode = N 부분이 화면 해상도를 설정하는 건데, https://elinux.org/RPiconfig RPiconfig - eLinux.org As the Raspberry Pi doesn't have a conventional BIOS, the various system configurati..
https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net t에서부터 역순으로 s와 문자열 길이가 같아질때까지 한글자씩 삭제해 나간다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws ..