Algorithm/Implementation (750) 썸네일형 리스트형 (C++) - 백준(BOJ) 3190번 : 뱀 www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net deque을 이용한 시뮬레이션 문제였습니다. 📕 풀이방법 📔 입력 및 초기화 deque snake를 선언합니다. 뱀의 머리는 front(), 뱀의 꼬리는 back()이라고 생각합니다. 한 원소의 자료형은 Snake라는 x,y 좌표 정보를 가지고 있는 구조체입니다. 뱀의 몸통에 부딪혀 게임이 종료될 수 있기때문에 뱀의 형태를 모두 저장해야 하기 때문입니다. 입력을 받습니다. 사과가 있는 위치는 1로만들어주고, map자료.. (C++) - 프로그래머스(2019 KAKAO BLIND RECRUITMENT) : 실패율 programmers.co.kr/learn/courses/30/lessons/42889?language=cpp# 코딩테스트 연습 - 실패율 실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스 programmers.co.kr 간단한 구현문제였습니다. 풀이방법 1. map에 스테이지별로 도전하고 실패한 사람을 세줍니다. (key,value) = (스테이지, 실패자 수) 입니다. 2. 실패율을 구해 vector 변수에 loseRatio 저장합니다. 실패율은 다음과 같습니다. 스테이지 i-1까지 도전한 사람들의 누적 수를 구해줍니다. 현재 스테이지 / (총 인원 - 누적 수)가.. (C++) - 프로그래머스(Summer/Winter Coding(~2018)) : 방문길이 programmers.co.kr/learn/courses/30/lessons/49994 코딩테스트 연습 - 방문 길이 programmers.co.kr 단순 구현문제였습니다. 풀이방법 1. 현재 위치에서 이동시에 좌표평면 바깥으로 넘어가지 않는다면 걸어갈 수 있는지 판단할 수 있습니다. 2. 넘어가지 않는다면 명령어를 시행한 후의 다음위치 X,Y를 nextX, nextY변수에 저장해줍니다. 3. 다음 각자 가는 방향에 따라 판단해줍니다. 3-1. 'U'인경우 현재위치에서 올라가는 방향이 이미 간 길이 아니라면 새로운 길이므로 answer++; 그리고 다음위치에서 내려가는 방향 또한 같은 길이기 때문에 갱신해주어야합니다. 3-2. 'D'인경우 현재위치에서 내려가는 방향이 이미 간 길이 아니라면 새로운 길이므.. (C++) - 백준(BOJ) 14654번 : 스테판 쿼리 www.acmicpc.net/problem/14654 14654번: 스테판 쿼리 첫째 줄에 라운드의 수 N이 주어진다. (1 n; for(int i = 0; i > teamA[i]; for(int i = 0; i > teamB[i]; for(int i = 0; i < n; i++){ if(teamA[i] == 1 && teamB[i] == 2) cntA = 0, cntB++; else if(teamA[i] == 2 && teamB[i] == 3) cntA = 0, cntB++; else if(teamA[i] == 3 && teamB[i] == 1) cntA = 0, cntB++; else if(teamB[i] == 1 && teamA[i] == 2) .. (C++) - 백준(BOJ) 5212번 : 지구온난화 www.acmicpc.net/problem/5212 5212번: 지구 온난화 첫째 줄에 지도의 크기 R과 C (1 ≤ R, C ≤ 10)가 주어진다. 다음 R개 줄에는 현재 지도가 주어진다. www.acmicpc.net 시뮬레이션 문제였습니다. 풀이방법 1. 지도를 입력받습니다. 2. 바다로 될 경우는 'X'의 상하좌우(인접한 곳)이 바다이고 3칸 이상일 때입니다. 비교할 상하좌우 칸이 지도를 넘어가는 경우에도 바다이므로 세줍니다. 세준 이후에는 바다로 될 지형을 ' '으로 바꿔줍니다. 3. 'X'인 곳을 정답 배열 ans에 옮겨줍니다. 4. ans의 'X'가 등장하는 최소 최대의 행,열을 구해준 뒤 해당 영역만큼 출력합니다. Code #include #include using namespace std;.. (C++) - 백준(BOJ) 12100번 : 2048(Easy) www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net Easy?? 하지 못한 시뮬레이션 문제였습니다. 풀이방법 1. 각 합치는 방향을 0,1,2,3(상,우,좌,하)으로 생각했을 때 4진법으로 5번의 이동을 4^5의 수로 표현할 수 있습니다. 2. 합칠 때 합친 결과를 출력할 필요가 없으므로 돌린뒤 위쪽방향으로 합치는 것으로 가정합니다. 어떤 이동의 방향이 0이라면 돌리지 않습니다. 방향이 1이라면 90도 오른쪽으로 돌린 뒤 위로 합칩니.. (C++) - 백준(BOJ) 15683번 : 감시 답 www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net 시뮬레이션 문제였습니다. 풀이방법 1. 초기화 : 카메라의 개수를 구합니다 1 ~ 5사이에 있는 수들의 개수를 세준다면 카메라의 개수입니다. 이 때 회전상태를 저장할 수 있는 구조체를 만들어 x번째 카메라가 저장되어 있는 행,열의 좌표와 카메라의 종류 회전상태를 저장해줍니다. 2. 각 카메라의 회전횟수(상태)를 모두 확인해줍니다. 0번에서 ~ 1=m) break; if(office[x][y]==6) .. (C++) - 백준(BOJ) 20055번 : 컨베이어 벨트 위의 로봇 www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 시뮬레이션 문제였습니다. 문제지문이 조금 이상해서 시간 단축을 위해 몇 가지 정보를 추가해보았습니다. 1. 로봇이 i에서 i + 1번째 칸으로 옮길때 i+1번째 칸만 내구도가 1감소합니다. 2. 로봇이 땅에 내려올 때 N번째 칸의 내구도는 감소하지않습니다. Code #include using namespace std; int n,k; //위층은 0 ~ n-1까지의 벨트 //아래층은 n ~ .. 이전 1 ··· 78 79 80 81 82 83 84 ··· 94 다음