분류 전체보기 118

11 디지털 주사위

#가속도계 #자이로스코프 #Sensor_Plus 핸드폰을 흔들어 주사위를 굴리는 앱. 가속 수치를 인식해 특정 수치를 넘으면 특정행동을 실행하도록 한다. 11.1 사전 지식11.1.1 가속도계특정 물체가 특정 방향으로 이동하는 가속도가 어느 정도인지 숫자로 측정하는 기기.3개의 축(x: 좌우, y: 위아래, z: 앞뒤)으로 방향에 따른 가속도를 측정한다. 물론 하나의 축으로 흔드는 건 불가능하기에 움직임 이벤트는 x,y,z축의 측정 결과가 모두 double값으로 반환된다. 11.1.2 자이로스코프가속도계는 각 축으로의 직선 움직임만 측정하기에, 자이로스코프로 회전을 측정해 보완한다. 11.1.3 Sensor_Plus 패키지핸드폰의 가속도계와 자이로스코프 센서를 사용할 수 있는 패키지. 센서의 데이터는 x..

BOJ: 줄 세우기(2252) [C++]

https://www.acmicpc.net/problem/2252 문제N명의 학생들을 키 순서대로 줄을 세우려고 한다. 각 학생의 키를 직접 재서 정렬하면 간단하겠지만, 마땅한 방법이 없어서 두 학생의 키를 비교하는 방법을 사용하기로 하였다. 그나마도 모든 학생들을 다 비교해 본 것이 아니고, 일부 학생들의 키만을 비교해 보았다.일부 학생들의 키를 비교한 결과가 주어졌을 때, 줄을 세우는 프로그램을 작성하시오.입력첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의미이다.학생들의 번호는 1번부터 N번이다.출력첫째 줄에 학생..

알고리즘 2024.07.01

BOJ: 빌런 호석(22251) [C++]

https://www.acmicpc.net/problem/22251문제치르보기 빌딩은 1층부터 𝑁층까지 이용이 가능한 엘리베이터가 있다. 엘리베이터의 층수를 보여주는 디스플레이에는 𝐾 자리의 수가 보인다. 수는 0으로 시작할 수도 있다. 0부터 9까지의 각 숫자가 디스플레이에 보이는 방식은 아래와 같다. 각 숫자는 7개의 표시등 중의 일부에 불이 들어오면서 표현된다. 빌런 호석은 치르보기 빌딩의 엘리베이터 디스플레이의 LED 중에서 최소 1개, 최대 𝑃개를 반전시킬 계획을 세우고 있다. 반전이란 켜진 부분은 끄고, 꺼진 부분은 켜는 것을 의미한다. 예를 들어 숫자 1을 2로 바꾸려면 총 5개의 LED를 반전시켜야 한다. 또한 반전 이후에 디스플레이에 올바른 수가 보여지면서 1이상 𝑁이하가 되도록 ..

알고리즘 2024.06.30

BOJ: 별자리 만들기(4386) [C++]

https://www.acmicpc.net/problem/4386 문제도현이는 우주의 신이다. 이제 도현이는 아무렇게나 널브러져 있는 n개의 별들을 이어서 별자리를 하나 만들 것이다. 별자리의 조건은 다음과 같다.별자리를 이루는 선은 서로 다른 두 별을 일직선으로 이은 형태이다.모든 별들은 별자리 위의 선을 통해 서로 직/간접적으로 이어져 있어야 한다.별들이 2차원 평면 위에 놓여 있다. 선을 하나 이을 때마다 두 별 사이의 거리만큼의 비용이 든다고 할 때, 별자리를 만드는 최소 비용을 구하시오.입력첫째 줄에 별의 개수 n이 주어진다. (1 ≤ n ≤ 100)둘째 줄부터 n개의 줄에 걸쳐 각 별의 x, y좌표가 실수 형태로 주어지며, 최대 소수점 둘째자리까지 주어진다. 좌표는 1000을 넘지 않는 양의 ..

알고리즘 2024.06.30

BOJ: 최소 스패닝 트리(1197) [C++]

https://www.acmicpc.net/problem/1197 문제그래프가 주어졌을 때, 그 그래프의 최소 스패닝 트리를 구하는 프로그램을 작성하시오.최소 스패닝 트리는, 주어진 그래프의 모든 정점들을 연결하는 부분 그래프 중에서 그 가중치의 합이 최소인 트리를 말한다.입력첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 가중치 C인 간선으로 연결되어 있다는 의미이다. C는 음수일 수도 있으며, 절댓값이 1,000,000을 넘지 않는다.그래프의 정점은 1번부터 V번까지 번호가 매겨져 있고, 임의의 두 정점 사이에 경로가..

알고리즘 2024.06.29

BOJ: 숫자 야구(2503) [C++]

https://www.acmicpc.net/problem/2503문제복붙이 귀찮은데 걍 세자리 노중복 숫자야구민혁이의 물음들과 각각의 물음에 대한 영수의 답이 입력으로 주어질 때 영수가 생각하고 있을 가능성이 있는 답의 총 개수를 출력하는 프로그램을 작성하시오.입력첫째 줄에는 민혁이가 영수에게 몇 번이나 질문을 했는지를 나타내는 1 이상 100 이하의 자연수 N이 주어진다. 이어지는 N개의 줄에는 각 줄마다 민혁이가 질문한 세 자리 수와 영수가 답한 스트라이크 개수를 나타내는 정수와 볼의 개수를 나타내는 정수, 이렇게 총 세 개의 정수가 빈칸을 사이에 두고 주어진다.출력첫 줄에 영수가 생각하고 있을 가능성이 있는 답의 총 개수를 출력한다.숫자 중복이 없다고 했으므로 123~987까지의 노중복 세자리숫자 ..

알고리즘 2024.06.27

Vite 환경변수 설정하기

공식 문서https://ko.vitejs.dev/guide/env-and-mode ViteVite, 차세대 프런트엔드 개발 툴ko.vitejs.dev .env 파일로 환경변수를 관리할 때 Vite가 접근할 수 있게 하려면 VITE_ 접두사를 붙여야 한다.VITE_SOME_KEY=123DB_PASSWORD=foobar예를 들어 위와 같이 환경변수를 정의했다면 VITE_SOME_KEY는 접근 가능하지만 접두사가 붙지 않은 DB_PASSWORD는 접근할 수 없다. .gitignore에 .env를 추가해주고 App.jsx에import.meta.env.VITE_SOME_KEY를 출력해보면 잘 나오는 것을 볼 수 있다. VITE_GPT_API_KEY = yourAPIKey 반년 내내 쓰고 있는 오픈AI 키...

공부 2024.06.26

BOJ: 친구비(16562) [C++]

https://www.acmicpc.net/problem/16562 문제 19학번 이준석은 학생이 N명인 학교에 입학을 했다. 준석이는 입학을 맞아 모든 학생과 친구가 되고 싶어한다. 하지만 준석이는 평생 컴퓨터랑만 대화를 하며 살아왔기 때문에 사람과 말을 하는 법을 모른다. 그런 준석이에게도 희망이 있다. 바로 친구비다!학생 i에게 Ai만큼의 돈을 주면 그 학생은 1달간 친구가 되어준다! 준석이에게는 총 k원의 돈이 있고 그 돈을 이용해서 친구를 사귀기로 했다. 막상 친구를 사귀다 보면 돈이 부족해질 것 같다는 생각을 하게 되었다. 그래서 준석이는 “친구의 친구는 친구다”를 이용하기로 했다.준석이는 이제 모든 친구에게 돈을 주지 않아도 된다!위와 같은 논리를 사용했을 때, 가장 적은 비용으로 모든 사람..

알고리즘 2024.06.26

BOJ: 트리 (4803) [C++]

https://www.acmicpc.net/problem/4803 문제그래프는 정점과 간선으로 이루어져 있다. 두 정점 사이에 경로가 있다면, 두 정점은 연결되어 있다고 한다. 연결 요소는 모든 정점이 서로 연결되어 있는 정점의 부분집합이다. 그래프는 하나 또는 그 이상의 연결 요소로 이루어져 있다.트리는 사이클이 없는 연결 요소이다. 트리에는 여러 성질이 있다. 예를 들어, 트리는 정점이 n개, 간선이 n-1개 있다. 또, 임의의 두 정점에 대해서 경로가 유일하다.그래프가 주어졌을 때, 트리의 개수를 세는 프로그램을 작성하시오.입력입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 n ≤ 500과 m ≤ n(n-1)/2을 만족하는 정점의 개수 n과 간선의 개수 m이 주어진..

알고리즘 2024.06.25

BOJ: 집합의 표현(1717) [C++]

https://www.acmicpc.net/problem/1717 문제초기에 n+1개의 집합 {0},{1},{2},…,{𝑛}이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다.집합을 표현하는 프로그램을 작성하시오. 입력첫째 줄에 𝑛, 𝑚이 주어진다. 𝑚은 입력으로 주어지는 연산의 개수이다. 다음 𝑚개의 줄에는 각각의 연산이 주어진다. 합집합은 0 𝑎 𝑏의 형태로 입력이 주어진다. 이는 𝑎가 포함되어 있는 집합과, 𝑏가 포함되어 있는 집합을 합친다는 의미이다. 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산은 1 𝑎 𝑏의 형태로 입력이 주어진다. 이는 𝑎와 𝑏가 같은 집합에 포함되어 있는지를 확인하는 연산이다. 출력1로 ..

알고리즘 2024.06.24