πŸ’  Cpp/[BOJ] λ‹¨κ³„λ³„λ‘œ 풀어보기

[BOJ][C++] λ°±μ€€ 10798번: μ„Έλ‘œμ½κΈ° (Bronze I)

선달 2024. 12. 25. 01:37
λ°˜μ‘ν˜•

문제

아직 글을 λͺ¨λ₯΄λŠ” μ˜μ„μ΄κ°€ 벽에 κ±Έλ¦° μΉ νŒμ— μžμ„μ΄ λΆ™μ–΄μžˆλŠ” κΈ€μžλ“€μ„ λΆ™μ΄λŠ” μž₯λ‚œκ°μ„ 가지고 놀고 μžˆλ‹€.
이 μž₯λ‚œκ°μ— μžˆλŠ” κΈ€μžλ“€μ€ μ˜μ–΄ λŒ€λ¬Έμž ‘A’λΆ€ν„° ‘Z’, μ˜μ–΄ μ†Œλ¬Έμž ‘a’λΆ€ν„° ‘z’, 숫자 ‘0’λΆ€ν„° ‘9’이닀. μ˜μ„μ΄λŠ” μΉ νŒμ— κΈ€μžλ“€μ„ μˆ˜ν‰μœΌλ‘œ 일렬둜 λΆ™μ—¬μ„œ 단어λ₯Ό λ§Œλ“ λ‹€. λ‹€μ‹œ κ·Έ μ•„λž˜μͺ½μ— κΈ€μžλ“€μ„ λΆ™μ—¬μ„œ 또 λ‹€λ₯Έ 단어λ₯Ό λ§Œλ“ λ‹€. 이런 μ‹μœΌλ‘œ λ‹€μ„― 개의 단어λ₯Ό λ§Œλ“ λ‹€. μ•„λž˜ κ·Έλ¦Ό 1은 μ˜μ„μ΄κ°€ μΉ νŒμ— λΆ™μ—¬ λ§Œλ“  λ‹¨μ–΄λ“€μ˜ μ˜ˆμ΄λ‹€.
<κ·Έλ¦Ό 1>
ν•œ μ€„μ˜ λ‹¨μ–΄λŠ” κΈ€μžλ“€μ„ 빈칸 없이 μ—°μ†μœΌλ‘œ λ‚˜μ—΄ν•΄μ„œ μ΅œλŒ€ 15개의 κΈ€μžλ“€λ‘œ 이루어진닀. λ˜ν•œ λ§Œλ“€μ–΄μ§„ λ‹€μ„― 개의 λ‹¨μ–΄λ“€μ˜ κΈ€μž κ°œμˆ˜λŠ” μ„œλ‘œ λ‹€λ₯Ό 수 μžˆλ‹€.
심심해진 μ˜μ„μ΄λŠ” μΉ νŒμ— λ§Œλ“€μ–΄μ§„ λ‹€μ„― 개의 단어λ₯Ό μ„Έλ‘œλ‘œ 읽으렀 ν•œλ‹€. μ„Έλ‘œλ‘œ 읽을 λ•Œ, 각 λ‹¨μ–΄μ˜ 첫 번째 κΈ€μžλ“€μ„ μœ„μ—μ„œ μ•„λž˜λ‘œ μ„Έλ‘œλ‘œ μ½λŠ”λ‹€. λ‹€μŒμ— 두 번째 κΈ€μžλ“€μ„ μ„Έλ‘œλ‘œ μ½λŠ”λ‹€. 이런 μ‹μœΌλ‘œ μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ ν•œ μžλ¦¬μ”© 이동 ν•˜λ©΄μ„œ λ™μΌν•œ 자리의 κΈ€μžλ“€μ„ μ„Έλ‘œλ‘œ 읽어 λ‚˜κ°„λ‹€. μœ„μ˜ κ·Έλ¦Ό 1의 λ‹€μ„― 번째 자리λ₯Ό 보면 두 번째 μ€„μ˜ λ‹€μ„― 번째 자리의 κΈ€μžλŠ” μ—†λ‹€. 이런 경우처럼 μ„Έλ‘œλ‘œ 읽을 λ•Œ ν•΄λ‹Ή 자리의 κΈ€μžκ°€ μ—†μœΌλ©΄, 읽지 μ•Šκ³  κ·Έ λ‹€μŒ κΈ€μžλ₯Ό 계속 μ½λŠ”λ‹€. κ·Έλ¦Ό 1의 λ‹€μ„― 번째 자리λ₯Ό μ„Έλ‘œλ‘œ 읽으면 D1gk둜 μ½λŠ”λ‹€.
κ·Έλ¦Ό 1μ—μ„œ μ˜μ„μ΄κ°€ μ„Έλ‘œλ‘œ 읽은 μˆœμ„œλŒ€λ‘œ κΈ€μžλ“€μ„ 곡백 없이 좜λ ₯ν•˜λ©΄ λ‹€μŒκ³Ό κ°™λ‹€:
Aa0aPAf985Bz1EhCz2W3D1gkD6x
μΉ νŒμ— 뢙여진 단어듀이 μ£Όμ–΄μ§ˆ λ•Œ, μ˜μ„μ΄κ°€ μ„Έλ‘œλ‘œ 읽은 μˆœμ„œλŒ€λ‘œ κΈ€μžλ“€μ„ 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

μž…λ ₯

총 λ‹€μ„―μ€„μ˜ μž…λ ₯이 주어진닀. 각 μ€„μ—λŠ” μ΅œμ†Œ 1개, μ΅œλŒ€ 15개의 κΈ€μžλ“€μ΄ 빈칸 없이 μ—°μ†μœΌλ‘œ 주어진닀. μ£Όμ–΄μ§€λŠ” κΈ€μžλŠ” μ˜μ–΄ λŒ€λ¬Έμž ‘A’λΆ€ν„° ‘Z’, μ˜μ–΄ μ†Œλ¬Έμž ‘a’λΆ€ν„° ‘z’, 숫자 ‘0’λΆ€ν„° ‘9’ 쀑 ν•˜λ‚˜μ΄λ‹€. 각 μ€„μ˜ μ‹œμž‘κ³Ό λ§ˆμ§€λ§‰μ— λΉˆμΉΈμ€ μ—†λ‹€.

좜λ ₯

μ˜μ„μ΄κ°€ μ„Έλ‘œλ‘œ 읽은 μˆœμ„œλŒ€λ‘œ κΈ€μžλ“€μ„ 좜λ ₯ν•œλ‹€. μ΄λ•Œ, κΈ€μžλ“€μ„ 곡백 없이 μ—°μ†ν•΄μ„œ 좜λ ₯ν•œλ‹€.

 

풀이

// 풀이 : https://whkakrkr.tistory.com

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int main() {
    ios_base::sync_with_stdio(false);
	cout.tie(NULL);
	cin.tie(NULL);
	
	// input
	string s = "";
	vector<string>input;
	int max_length = 0;
	while(cin >> s) {
	    input.push_back(s);
	    max_length = max(max_length, (int)s.size());
	}
	
	// solution
	int n = input.size();
	string output = "";
	for(int i=0; i<max_length; i++) {
	    for(int j=0; j<n; j++) {
	        if(input[j].size() <= i) {
	            continue;
	        }
	        output += input[j][i];
	    }
	}
	
	// output
	cout << output;
	
    return 0;
}
λ°˜μ‘ν˜•