본문 바로가기

분류 전체보기

(146)
[ BOJ 백준 1405번 - 미친 로봇 ] 해설 및 코드 https://www.acmicpc.net/problem/1405 백준 1405번 미친로봇 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자연수 또는 0이다. 그리고, 동서남북으로 이동할 확률을 모두 더하면 100이다. www.acmicpc.net 목적 로봇의 이동경로가 단순(방문한 곳을 재방문 하지 않음)할 확률을 구하자. 접근법 1. 완전탐색 알고리즘으로,동서남북 네 방향으로 이동할 수 있는 모든 경우에 해당하는 확률의 합을 구한다. *주의 : cout.precision(10); 코드를 사용하여 문제 조건에 해당하는 오차 범위로 변..
[ BOJ 백준 17136번 - 색종이 붙이기 ] 해설 및 코드 백준 17136 - 색종이 붙이기 https://www.acmicpc.net/problem/17136 17136번: 색종이 붙이기 과 같이 정사각형 모양을 한 다섯 종류의 색종이가 있다. 색종이의 크기는 1×1, 2×2, 3×3, 4×4, 5×5로 총 다섯 종류가 있으며, 각 종류의 색종이는 5개씩 가지고 있다. 색종이를 크기가 10×10인 종이 위에 붙이려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 0 또는 1이 적혀 있다. 1이 적힌 칸은 모두 색종이로 덮여져야 한다. 색종이를 붙일 때는 종이의 경계 밖으로 나가서는 안되고, 겹쳐 www.acmicpc.net 목적 1×1, 2×2, 3×3, 4×4, 5×5의 총 다섯 종류의 색종이를 이용하여, 10x10 크기의 종이에 1이 ..
[ BOJ 백준 1035번 - 조각 움직이기 ] 해설 및 코드 https://www.acmicpc.net/problem/1035 목적 5x5 크기의 보드에서 최대 5개의 조각을 움직여 서로 인접하도록 만드는 최소 이동 횟수를 구한다. 접근법 1. 다음과 같은 순으로 조각들의 가능한 모든 위치를 검사한다. 2. 위와 같이 배치한 조각들이 서로 인접해 있는지 검사한다. (좌측 최상단에 있는 조각을 기준으로 dfs 방식으로 인접한 조각의 개수를 구하고 전체 조각의 개수와 비교) 3. 모든 조각이 서로 인접해있다면 조각 별 이동거리를 합하여 최소 이동거리를 갱신한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42..
[ BOJ 백준 1339번 - 단어 수학 ] 해설 및 코드 https://www.acmicpc.net/problem/1339 목적 GCF + ACDEB를 계산한다고 할 때, 합을 최대로 만들기 위해 A = 9, B = 4, C = 8, D = 6, E = 5, F = 3, G = 7로 결정한다. 접근법 1. 각 단어의 알파벳 정보를 각 자리수를 고려하여 1*10^n의 값으로 대체하여 저장한다. 계산 하려는 수식은 GCF + ACDEB로, 우선은 다음과 같이 사용하고자 하는 알파벳 개수 만큼의 배열을 준비한다. 이제 단어를 하나씩 가지고 배열의 값을 갱신해 나간다. 첫번째 단어인 GCF에서 G,C,F 각각은 100,10,1의 자리에 위치해 있다. 다음과 같이 배열을 갱신한다. 같은 방법으로, 두번째 단어인 ACDEB로 배열을 갱신하면 다음과 같다. 2. 모든 단어..
[ BOJ 백준 1344번 - 축구 ] 해설 및 코드 https://www.acmicpc.net/problem/1344 목적 축구 경기 90분 동안 적어도 한 팀이 골을 소수로 득점할 확률을 구한다. 접근법 1. 총 18개의 간격에서(90분 경기를 5분 간격으로 나눴기 때문..) 소수 아닌 갯수의 골을 넣을 확률 계산 2. 중학교에서 배운 공식을 이용한다. ex) 득점할 확률이 a이고, 18개 중 4개의 득점을 할 확률 = 18C4 * a^4 * (1-a)^14 3. nCr에 해당하는 조합은 파스칼의 삼각형 공식으로 구한다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include #include #incl..
[ BOJ 백준 4574번 - 스도미노쿠 ] 해설 및 코드 https://www.acmicpc.net/problem/4574 목적 스도미노쿠의 9x9 그리드에 스도쿠 규칙에 따라, (1+2, 1+3, 1+4, 1+5, 1+6, 1+7, 1+8, 1+9, 2+3, 2+4, 2+5, ...)와 같은 도미노 타일 36개를 채워야한다. 접근법 1. 0,0~8,8까지의 범위에서, i, j에 해당하는 좌표를 순서대로 방문 2. 해당 좌표에 놓을 수 있는 타일을 상하좌우 네 방향으로 인접한 좌표까지 고려하여 추려낸다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 5..
[프로그래밍/C#] Event와 EventHandler 사용법 예제 클래스 내부 로직에서 발생하는 이벤트를 다른 클래스에 전달해야 하는 경우가 있다. Car 클래스에 현재 위치를 나타내는 _position, 목적지 위치를 나타내는 _destination 변수가 있고, 1초에 1씩 현재 위치를 증가시켜 목적지까지 도달하게 하는 Drive 메소드가 정의되어 있다. main 메소드에서는 Car 객체를 car라는 이름으로 목적지 위치를 3으로 주어 생성하고 car 객체의 Drive 메소드를 호출한다.12345678910111213141516171819202122232425262728class Program{ static void Main(string[] args) { Car car = new Car(3); car.Drive(); }} class Car{ private int _..
[프로그래밍/Python] 아두이노 HC-06 와 라즈베리파이 블루투스 RFCOMM 통신 참고 https://webnautes.tistory.com/979 bluetooth.ino 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include SoftwareSerial BTSerial(2, 3); //bluetooth module Tx:Digital 2 Rx:Digital 3 void setup() { pinMode(8, OUTPUT); //HC-05 digitalWrite(8,HIGH); Serial.begin(9600); BTSerial.begin(9600); Serial.println("ATcommand"); //ATcommand Start } void loop() { if (BTSerial.available()) Serial.write(BTSer..