🔗 문제 링크 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 💡 문제 풀이 및 해석 문제의 전체적인 흐름은 '현재 칸 청소' 반시계 90도로 회전하면서 청소할 있을 경우 이동 한 바퀴 돌고도 청소할 공간이 없다면 후진한다. 후진할 공간이 없다면 작동을 멈춘다. ⭐️ 정답 코드 및 설명 #include using namespace std; int N, M, r, c, d; int dir[] = { 0,3,2,1 }; int next_x[] = { 0,1,0,-1..
문제풀이/알고리즘 문제 풀이
🔗 문제 링크 1405번: 미친 로봇 첫째 줄에 N, 동쪽으로 이동할 확률, 서쪽으로 이동할 확률, 남쪽으로 이동할 확률, 북쪽으로 이동할 확률이 주어진다. N은 14보다 작거나 같은 자연수이고, 모든 확률은 100보다 작거나 같은 자 www.acmicpc.net 💡 문제 풀이 및 해석 경로가 겹치지 않는 경우만 계산하면 된다. 이 경우보다는 겹칠 때, 이동을 끝내는게 구현에 용이해 보였다. 매번 bool 배열을 파라미터로 받으면 시간초과가 날 수도 있을 것 같아서 전역변수로 방문여부를 체크했다. '1 - 단순하지 않은 경로'로 구현 ⭐️ 정답 코드 및 설명 #include using namespace std; int n; double E, W, S, N; double answer = 0; bool is..
🔗 문제 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 💡 문제 풀이 및 해석 1. 10000명정도의 사람이 들어올 수 있는데, 각각의 사람이 판매 금액의 10%씩 추천인에게 주어야한다. 2. 여기서 12원일때 1.2원이 되는게 아니고 1원씩 올라가는 것을 보니 int / 10 형식으로 올리는 것 같다. 3. 단, A->B 에서 12원을 주고, C->B 에서 18원을 줄 때, 따로따로 주면 B->D 에서 각각 1원씩 주지만, 이 계산을 한번에 진행한다면 ( 12+18 ) / 10 = 3 이 되므로 각각 계산해야 한다. 4. 0원일 때, 추천인이 없을..
🔗 문제 링크 1379번: 강의실 2 첫째 줄에 강의의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 줄마다 세 개의 정수가 주어지는데, 순서대로 강의 번호, 강의 시작 시간, 강의 종료 시간을 의미한다. 강의 www.acmicpc.net 💡 문제 풀이 및 해석 최대한 적은 강의실 사용 종료 시간과 시작 시간이 겹치는건 가능 따라서 가장 빨리 끝나는 강의 기준으로 가장 빨리 시작하는 강의가 이어서 할 수 있다면 새로운 강의실을 배정할 필요는 없다. ⭐️ 정답 코드 및 설명 #include #include #include #include #define endl "\n" using namespace std; int N; priority_queue q; // 끝나는 시간..
🔗 문제 링크 1027번: 고층 건물 세준시에는 고층 빌딩이 많다. 세준시의 서민 김지민은 가장 많은 고층 빌딩이 보이는 고층 빌딩을 찾으려고 한다. 빌딩은 총 N개가 있는데, 빌딩은 선분으로 나타낸다. i번째 빌딩 (1부터 시작) www.acmicpc.net 💡 문제 풀이 및 해석 1. 입력이 50개라는 제한이 있었다. 2. 2초라는 50개에 비한 비교적 널널한 시간제한이 있었다. 3. 위의 두가지 조건을 고려하여 brute force로 진행. ⭐️ 정답 코드 및 설명 #include #include #include using namespace std; int N; int cnt[50]; vector building; void input() { cin >> N; for (int i = 0; i < N;..
문제 링크 1344번: 축구 홍준이는 축구 경기를 보고 있다. 그러다가 홍준이는 역시 두 팀 중 적어도 한 팀이 골을 소수로 득점할 확률이 궁금해 졌다. 축구 경기는 90분동안 이루어지고, 분석을 쉽게하기 위해서 경기를 5 www.acmicpc.net 💡 문제 풀이 1. 90분이라는 시간이 있고, 5분마다 결과가 나온다 -> 최대 라운드는 18라운드가 있다고 할 수 있고, 최대로 넣을 수 있는 골도 18골이다. 따라서, dp[라운드][A팀의 골수][B팀의 골수] 를 만들어 준다. 2. 매번 A팀과 B팀이 골을 넣을 수 있는 확률은 독립실행이고, 이전 라운드 확률에서 곱해주면 된다. ⭐️ 정답 코드 및 설명 #include #include using namespace std; float A, B; // A..