목록C++ (14)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/R79y5/btrDJwmuQHs/LanhPJuM0cnEgSfpkfhw5k/img.png)
👉 문제링크 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 🔸 문제 분석 🔸 문자열의 길이 내림차순 정렬과 사전식 정렬을 같이 적용하는 문제이다. 헤더 의 sort 함수 compare인자를 사용하면 쉽게 풀 수 있다. 🔸 코드 🔸 #include #include #include using namespace std; bool check(std::string& a, std::string& b) { if (a.size() < b.size()) return true; else if (a.size() ==..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/mMiaW/btrDEpCdIXb/5QDNQ7j0wbq60qYghHemZ0/img.png)
👉 문제링크 2292번: 벌집 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌 www.acmicpc.net 🔸 문제 분석 🔸 N번째 방 까지의 지나는 방의 수는 몇 번째 껍질(?)인지 세면 된다. 벌집은 한겹한겹 늘어날때마다 6배수만큼 늘어난다. 중앙 '1'에서 오른쪽 아래로 내려가면 '7', '19', '37', '61' 인데 증가폭을 보면 6, 12, 18, 24이다. 따라서 최대값을 6의 배수만큼 늘려가며 N이 포함되는지 확인하면 된다. 🔸 코드 🔸 #include using namespace std; int main(void) { int N, count =..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b6WDkJ/btrDKLp70qj/VMB1E1KKOz9ncX7FeVx6XK/img.png)
👉 문제링크 2231번: 분해합 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 www.acmicpc.net 🔸 문제 분석 🔸 분해합 N : 자연수 M과 그 M의 자릿수를 각각 더해서 나오는 수 >> M은 N의 생성자 생성자가 없는 경우를 생각하다가 1~10의 생성자는 무조건 2배이고 짝수라는 걸 깨달았다. 생성자는 분해합보다 항상 1이상 작은 것 같으니 1부터 입력된 자연수 까지 증가시키며 분해합을 해보면 될 것 같다. 🔸 코드 🔸 #include #include using namespace std; int main(void)..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bzdulZ/btrDEQ0qF8z/JUJib3fXrkAGmfKDb3IDH0/img.png)
👉 문제링크 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 🔸 문제 분석 🔸 방을 채워가는 방법은 왼쪽아래부터 위로 한줄 한줄 채워가는 것이다. N > T; for (int i = 0; i > H >> W >> N; if (N%H == 0) printf("%d%02d\n", H, N / H); else printf("%d%02d\n", N % H, N / H + 1); } return 0; } 🔸 코드 해석 🔸 층을 N%H, 호실을 N / H + 1로 나타냈는데, 가장..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bJ873h/btrCscWBTtX/TfaghWHkggubl2nfPCRAIK/img.png)
👉 문제링크 2204번: 도비의 난독증 테스트 꿍은 도비에게 영어단어들을 제시한 후 어떤 단어가 대소문자를 구분하지 않고 사전순으로 가장 앞서는지 맞추면 양말을 주어 자유를 얻게해준다고 하였다. 하지만 인성이 좋지 않은 꿍은 사실 www.acmicpc.net 🔸 문제 분석 🔸 문자열을 대문자 혹은 소문자로만 이루어 지도록 통일시키는 변환이 필요하다. 사전식 오름차순 정렬에서 가장 앞에오는 것을 고른다. 입력받자마자 전 값과 비교해서 출력하는 코드를 작성했지만, 오류가 많이 나서 정답 포스팅을 참조했다. 🔸 기존 코드 (오답)🔸 #include #include using namespace std; int main(void) { int n; string input, answer, temp; do { cin ..