본문 바로가기

Problem solving70

[BOJ] 6593. 상범 빌딩 (C++) 문제 정육면체는 금으로 이루어져서 나갈 수 없거나 비어있어서 지나갈 수 있게 되어있다. 금으로 막혀있어 지나갈 수 없는 칸은 '#'으로 표현되고, 비어있는 칸은 '.'으로 표현된다. 당신의 시작 지점은 'S'로 표현되고, 탈출할 수 있는 출구는 'E'로 표현된다. 각 층 사이에는 빈 줄이 있으며, 입력의 끝은 L, R, C가 모두 0으로 표현된다. 시작 지점과 출구는 항상 하나만 있다. 탈출하는데 필요한 최단 시간은? 생각할 것 층이 있었기에 3차원 벡터로 만들어주었다 코드 #include #include #include #include using namespace std; int dl[6] = {0, 0, 0, 0, -1, 1}; // 동서남북상하 int dx[6] = {0, 0, -1, 1, 0, 0.. 2023. 8. 23.
[BOJ] 2468. 안전 영역 (C++) 문제 장마철에 물에 잠기지 않는 안전한 영역의 최대 개수 출력 장마철에 내리는 비의 양에 따라서 물에 잠기지 않는 안전한 영역의 개수는 다르게 된다 생각할 것 각 높이마다 안전한 영역의 개수가 다르다. 왼쪽은 4 이하인 지점이, 오른쪽은 6이하인 지점이 모두 잠긴 경우 영역의 개수이다. 코드 #include #include using namespace std; int N; int dx[4] = {-1, 1, 0, 0}; // 상하좌우 int dy[4] = {0, 0, -1, 1}; vector board; vector visited; void dfs(int x, int y, int height) { visited[x][y] = true; for (int k = 0; k < 4; k++) { int nx .. 2023. 8. 23.
[구름톤 챌린지] 합 계산기 (C++) 문제 T개의 계산식을 입력받은 뒤, 각각의 계산 결과를 모두 합해서 출력하기 다음의 조건을 만족해야 한다. 계산식은 형태 에는 더하기, 빼기, 곱하기, 나누기의 네 가지 사칙 연산 기호가 들어갈 수 있다. 이때, 나눗셈 결과의 나머지는 버린다. 생각할 것 나눗셈 결과의 나머지는 버리므로 결과가 정수로 나올 것이다. 입력 받는 연산 기호에 따라 계산하고, 결과를 더해준다. 코드 #include using namespace std; int main() { int T, n1, n2, res = 0; char op; cin >> T; while(T--){ // 계산식 입력 cin >> n1 >> op >> n2; // 연산 기호에 따라 계산 switch(op){ case '+': res += (n1 + n2);.. 2023. 8. 16.
[구름톤 챌린지] 프로젝트 매니징 (C++) 문제 현재 구름 프로젝트를 완수하기 위해서 N개의 기능 개발이 추가로 필요하다. i번째 기능을 개발하는데 ci분의 시간이 걸린다. 작업을 시작한 시각은 T시 M분이다. 플레이어는 1번 기능부터 순서대로 개발을 진행하고, 한 기능 개발을 마치면 바로 다음 기능 개발을 시작한다. 플레이어가 모든 기능 개발을 끝마친 시각은? 생각할 것 나머지 연산을 응용해야 한다. 작업 시간을 입력받을 때마다 종료시각을 더해준다. 60분보다 크면 시각을 더하고, 60으로 나눈 나머지는 분으로 설정한다. 시각은 24시를 0으로 나타내야 하므로 24의 나머지로 설정한다. 처음에는 if(M>=60)의 조건을 추가했었는데, 나누었을 때 60보다 작으면 어차피 0이므로 제거했다. 코드 #include using namespace st.. 2023. 8. 15.