[백준/c++] 1748번: 수 이어 쓰기 1
·
카테고리 없음
https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 처음엔 그냥 문자열로 쭉 붙였는데 시간 초과.. if문으로 n까지 자릿수 더해주기로 했는데 시간 초과 결국 다른 사람 코드를 확인했다. 그러니까 엄청 간단하게 나왔다.. 아래 코드는 i자릿수에 해당하는 숫자의 개수 더해준다. 이런 코드는 지금 상태론.. 절대 생각 못해낼 듯싶다..ㅋㅋ.. 이것도 기억해놓기로~ #include #include #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);..
[백준/c++] 1476번: 날짜 계산
·
알고리즘/백준
https://www.acmicpc.net/problem/1476 1476번: 날짜 계산 준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다. 지구를 나타 www.acmicpc.net 처음엔 어떻게 하면 좋을까 하다가 시간제한이 2초라 완전 탐색 충분히 될 거 같아서 해봤다 역시... 반복문으로 진행하면 한번에 cnt++하고 만약 범위를 벗어나면 1로 돌려준다. #include #include #include using namespace std; int main(){ ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int E, S, M; ci..
[백준/c++] 1285번: 동전 뒤집기
·
알고리즘/백준
https://www.acmicpc.net/problem/1285 1285번: 동전 뒤집기 첫째 줄에 20이하의 자연수 N이 주어진다. 둘째 줄부터 N줄에 걸쳐 N개씩 동전들의 초기 상태가 주어진다. 각 줄에는 한 행에 놓인 N개의 동전의 상태가 왼쪽부터 차례대로 주어지는데, 앞면이 위 www.acmicpc.net 이들 N^2개의 동전에 대하여 임의의 한 행 또는 한 열에 놓인 N개의 동전을 모두 뒤집는 작업을 수행할 수 있다. N^2개의 동전들의 초기 상태가 주어질 때, 한 행 또는 한 열에 놓인 N개의 동전을 모두 뒤집는 작업들을 수행하여 뒷면(T)이 위를 향하는 동전 개수를 최소로 하려고 한다. 이때 최소 개수를 구하는 프로그램 구하기 [정리] 각 행/열 별로 동전을 뒤집을 수 있다. 각 동전의 상..
[백준/c++] 13458번: 시험 감독
·
알고리즘/백준
https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 총감독은 각 시험장 당 1명만 가능하고 부감독은 여러 명이 가능하다. 총감독 한명이 감독하는 것이 부감독 여러 명이 감독하는 것보다 적은 수니까 총감독 먼저 넣어준다. 총감독을 넣고 나머지를 부감독이 감독하도록 한다. 1) 인원수 >= 총감독: 인원수 -= 총감, cnt++ 2) 인원수 < 총감독 : 인원수 = 0, cnt++ --- IF ..
[백준/c++] 1987번: 알파벳
·
알고리즘/백준
https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 처음에 BFS로 풀다가 답이 제대로 안 나와서 뭐지? 했는데 다시 문제를 읽어보니.. DFS로 풀었어야 했다! 근데 당연함. 한 루트로 쭉 가는 거니까... 멍청하게 시간만 버림.. BFS로ㅋ 내가 넘 좋아하는 BFS 날 배신하다니... 근데 DFS로 막연하게 풀면 안 풀린다. 왜냐면 알파벳 방문 체크를 이미 해줬기 때문에 한 루트만 가고 끝이 나기 때문..!! 여러 루트를 모두 둘러보고 ..
[백준/c++] 2661번: 좋은수열
·
알고리즘/백준
https://www.acmicpc.net/problem/2661 2661번: 좋은수열 첫 번째 줄에 1, 2, 3으로만 이루어져 있는 길이가 N인 좋은 수열들 중에서 가장 작은 수를 나타내는 수열만 출력한다. 수열을 이루는 1, 2, 3들 사이에는 빈칸을 두지 않는다. www.acmicpc.net 나올 수 있는 모든 수열을 만들어서 나중에 이게 나쁜 수열인지 좋은 수열인지 체크하는 건 시간 초과가 발생한다. 그래서 아무리 생각해도 어떻게 하면 좋을지 모르겠어서 다른 사람들의 코드를 확인했다. 이 분들은 수열을 모두 만들어서 하는게 아니라 하나씩(1,2,3) 붙여나가면서 그때마다 나쁜 수열인지 체크를 했다. 나쁜 수열이면 바로 끝내고 아니면 DFS를 통해서 계속해서 문자를 붙이도록 했다. 그래서 안 되는..
[백준/c++] 2589번: 보물섬
·
카테고리 없음
https://www.acmicpc.net/problem/2589 2589번: 보물섬 보물섬 지도를 발견한 후크 선장은 보물을 찾아나섰다. 보물섬 지도는 아래 그림과 같이 직사각형 모양이며 여러 칸으로 나뉘어져 있다. 각 칸은 육지(L)나 바다(W)로 표시되어 있다. 이 지도에서 www.acmicpc.net 처음에는 이해가 안 가는 문제였는데, 모든 육지 칸에서 출발해서 최단 거리로 이동하되 가장 긴 거리가 되는 곳까지 가는 데 걸리는 시간을 구하면 된다. (한 시간에 한 칸) 역시 문제는 천천히 읽으면서 이해해야 한다.. BFS를 이용해서 육지의 한칸에서 갈 수 있는 모든 육지 칸으로 이동해서 가장 오래 걸리는 시간을 구하고 모든 육지 칸에서 시작해서 다 돌아봤다면 최댓값을 업데이트하면서 구하면 된다~..
[백준/c++] 3649번: 로봇 프로젝트
·
알고리즘/백준
https://www.acmicpc.net/problem/3649 3649번: 로봇 프로젝트 각 테스트 케이스마다 한 줄에 하나씩, 구멍을 완벽하게 막을 수 있는 두 조각이 없다면 'danger'를 출력한다. 막을 수 있는 경우에는 'yes ℓ1 ℓ2'를 출력한다. (ℓ1 ≤ ℓ2) 정답이 여러 개인 경우에 www.acmicpc.net 아무리 생각해도 다 맞았는데 대체 왜 안 되는 건지 모르겠던 문제 딱히 반례라고 할 것도 없는 것 같은데 대체 왜 50%에서 멈추는지 화딱지가 났었는데 실수는 바로.. v를 초기화하지 않았던 것! 여러 테스트 케이스가 들어오기 때문에 두 조각의 정보가 들어가는 vector를 꼭 초기화했어야 했는데 안 했다... 이 문제는 두 포인터로 구현했다. 조각의 길이를 정렬하고 양 ..
[백준/c++] 1747번: 소수&팰린드롬
·
알고리즘/백준
https://www.acmicpc.net/problem/1747 1747번: 소수&팰린드롬 어떤 수와 그 수의 숫자 순서를 뒤집은 수가 일치하는 수를 팰린드롬이라 부른다. 예를 들어 79,197과 324,423 등이 팰린드롬 수이다. 어떤 수 N (1 ≤ N ≤ 1,000,000)이 주어졌을 때, N보다 크거나 같고, www.acmicpc.net while문을 돌면서 N보다 크거나 같은 수를 팰린드롬인지 소수인지 체크해주고 맞다면 바로 나와서 값을 출력하면 된다. 시간제한이 2초라서 for문으로 돌리면서 소수를 찾아도 충분하다.. #include #include using namespace std; bool isPrime(int n){ if(n == 1) return false; for(int i=2;..
녕이
'BOJ' 태그의 글 목록 (11 Page)