ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [λ°±μ€€(BOJ)] 10798번 μ„Έλ‘œμ½κΈ°, Cμ–Έμ–΄ 풀이
    PS(Problem Solving)/C 2020. 8. 5. 12:46
    λ°˜μ‘ν˜•

    <μ„Έλ‘œμ½κΈ°>, 10798번

     

    문제

    아직 글을 λͺ¨λ₯΄λŠ” μ˜μ„μ΄κ°€ 벽에 κ±Έλ¦° μΉ νŒμ— μžμ„μ΄ λΆ™μ–΄μžˆλŠ” κΈ€μžλ“€μ„ λΆ™μ΄λŠ” μž₯λ‚œκ°μ„ 가지고 놀고 μžˆλ‹€. 

    이 μž₯λ‚œκ°μ— μžˆλŠ” κΈ€μžλ“€μ€ μ˜μ–΄ λŒ€λ¬Έμž ‘A’λΆ€ν„° ‘Z’, μ˜μ–΄ μ†Œλ¬Έμž ‘a’λΆ€ν„° ‘z’, 숫자 ‘0’λΆ€ν„° ‘9’이닀. μ˜μ„μ΄λŠ” μΉ νŒμ— κΈ€μžλ“€μ„ μˆ˜ν‰μœΌλ‘œ 일렬둜 λΆ™μ—¬μ„œ 단어λ₯Ό λ§Œλ“ λ‹€. λ‹€μ‹œ κ·Έ μ•„λž˜μͺ½μ— κΈ€μžλ“€μ„ λΆ™μ—¬μ„œ 또 λ‹€λ₯Έ 단어λ₯Ό λ§Œλ“ λ‹€. 이런 μ‹μœΌλ‘œ λ‹€μ„― 개의 단어λ₯Ό λ§Œλ“ λ‹€. μ•„λž˜ κ·Έλ¦Ό 1은 μ˜μ„μ΄κ°€ μΉ νŒμ— λΆ™μ—¬ λ§Œλ“  λ‹¨μ–΄λ“€μ˜ μ˜ˆμ΄λ‹€. 

    A A B C D Da f z z 0 9 1 2 1a 8 E W g 6P 5 h 3 k x

    <κ·Έλ¦Ό 1>

    ν•œ μ€„μ˜ λ‹¨μ–΄λŠ” κΈ€μžλ“€μ„ 빈칸 없이 μ—°μ†μœΌλ‘œ λ‚˜μ—΄ν•΄μ„œ μ΅œλŒ€ 15개의 κΈ€μžλ“€λ‘œ 이루어진닀. λ˜ν•œ λ§Œλ“€μ–΄μ§„ λ‹€μ„― 개의 λ‹¨μ–΄λ“€μ˜ κΈ€μž κ°œμˆ˜λŠ” μ„œλ‘œ λ‹€λ₯Ό 수 μžˆλ‹€. 

    심심해진 μ˜μ„μ΄λŠ” μΉ νŒμ— λ§Œλ“€μ–΄μ§„ λ‹€μ„― 개의 단어λ₯Ό μ„Έλ‘œλ‘œ 읽으렀 ν•œλ‹€. μ„Έλ‘œλ‘œ 읽을 λ•Œ, 각 λ‹¨μ–΄μ˜ 첫 번째 κΈ€μžλ“€μ„ μœ„μ—μ„œ μ•„λž˜λ‘œ μ„Έλ‘œλ‘œ μ½λŠ”λ‹€. λ‹€μŒμ— 두 번째 κΈ€μžλ“€μ„ μ„Έλ‘œλ‘œ μ½λŠ”λ‹€. 이런 μ‹μœΌλ‘œ μ™Όμͺ½μ—μ„œ 였λ₯Έμͺ½μœΌλ‘œ ν•œ μžλ¦¬μ”© 이동 ν•˜λ©΄μ„œ λ™μΌν•œ 자리의 κΈ€μžλ“€μ„ μ„Έλ‘œλ‘œ 읽어 λ‚˜κ°„λ‹€. μœ„μ˜ κ·Έλ¦Ό 1의 λ‹€μ„― 번째 자리λ₯Ό 보면 두 번째 μ€„μ˜ λ‹€μ„― 번째 자리의 κΈ€μžλŠ” μ—†λ‹€. 이런 경우처럼 μ„Έλ‘œλ‘œ 읽을 λ•Œ ν•΄λ‹Ή 자리의 κΈ€μžκ°€ μ—†μœΌλ©΄, 읽지 μ•Šκ³  κ·Έ λ‹€μŒ κΈ€μžλ₯Ό 계속 μ½λŠ”λ‹€. κ·Έλ¦Ό 1의 λ‹€μ„― 번째 자리λ₯Ό μ„Έλ‘œλ‘œ 읽으면 D1gk둜 μ½λŠ”λ‹€. 

    κ·Έλ¦Ό 1μ—μ„œ μ˜μ„μ΄κ°€ μ„Έλ‘œλ‘œ 읽은 μˆœμ„œλŒ€λ‘œ κΈ€μžλ“€μ„ 곡백 없이 좜λ ₯ν•˜λ©΄ λ‹€μŒκ³Ό κ°™λ‹€:

    Aa0aPAf985Bz1EhCz2W3D1gkD6x

    μΉ νŒμ— 뢙여진 단어듀이 μ£Όμ–΄μ§ˆ λ•Œ, μ˜μ„μ΄κ°€ μ„Έλ‘œλ‘œ 읽은 μˆœμ„œλŒ€λ‘œ κΈ€μžλ“€μ„ 좜λ ₯ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

     

    μž…λ ₯

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

     

    좜λ ₯

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

     

    예제 μž…λ ₯ 1 λ³΅μ‚¬

    ABCDE

    abcde

    01234

    FGHIJ

    fghij

    예제 좜λ ₯ 1 λ³΅μ‚¬

    Aa0FfBb1GgCc2HhDd3IiEe4Jj

     

    풀이

    이 λ¬Έμ œλŠ” 이차원 배열을 μ΄μš©ν•΄μ„œ ν’€μ΄ν•˜λ©΄ ν•΄κ²°ν•  수 μžˆλŠ” λ¬Έμ œμ΄λ‹€. λ‚˜λŠ” 이 문제λ₯Ό 접근을 μ–΄λ–»κ²Œ ν•΄μ•Όν•˜λŠ”μ§€ μ•Œμ§€ λͺ»ν•΄μ„œ ꡬ글링을 ν†΅ν•΄μ„œ 이차원 배열을 μ΄μš©ν•΄ ν’€μ΄ν•œλ‹€λŠ” 것을 μ•Œκ²Œ λ˜μ—ˆλ‹€. 이차원 λ°°μ—΄μ˜ [0][0], [1][0], [2][0] ~ κ³Ό 같은 ν˜•νƒœλ‘œ 좜λ ₯ν•˜λ„λ‘ 이쀑 for문을 μ‚¬μš©ν•΄ ν”„λ‘œκ·Έλž¨μ„ μ œμž‘ν–ˆλ‹€.

     

    #include <stdio.h>
    
    int main(void)
    {
    	char arr[5][15] = { 0 };
    
    	for (int i = 0; i < 5; i++)
    		scanf("%s", arr[i], sizeof(arr));
    
    	for (int i = 0; i < 15; i++)
    		for (int j = 0; j < 5; j++)
    		{
    			if (arr[j][i] == NULL)
    				continue;
    			else
    				printf("%c", arr[j][i]);
    		}
    
    	return 0;
    }
    λ°˜μ‘ν˜•
Designed by Tistory.