GiantStepDEV
article thumbnail

๋ฌธ์ œ

Vigenere cipher์ด๋ผ๋Š” ์•”ํ˜ธํ™” ๋ฐฉ๋ฒ•์€ ์•”ํ˜ธํ™”ํ•˜๋ ค๋Š” ๋ฌธ์žฅ (ํ‰๋ฌธ)์˜ ๋‹จ์–ด์™€ ์•”ํ˜ธํ™” ํ‚ค๋ฅผ ์ˆซ์ž๋กœ ๋ฐ”๊พผ ๋‹ค์Œ, ํ‰๋ฌธ์˜ ๋‹จ์–ด์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž์— ์•”ํ˜ธ ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋ฅผ ๋”ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ๋ณ€ํ˜•ํ•˜์—ฌ ํ‰๋ฌธ์˜ ๋‹จ์–ด์— ์•”ํ˜ธํ™” ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ์ˆซ์ž๋ฅผ ๋นผ์„œ ์•”ํ˜ธํ™”ํ•˜๋Š” ๋ฐฉ์‹์„ ์ƒ๊ฐํ•ด ๋ณด์ž.

์˜ˆ๋ฅผ ๋“ค์–ด ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ love์ด๊ณ , ์•”ํ˜ธํ™”ํ•  ๋ฌธ์žฅ์ด “nice day” ๋ผ๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์•”ํ˜ธํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

์ œ์‹œ๋œ ํ‰๋ฌธ์˜ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์ธ ‘n’์€ ํ•ด๋‹น ์•”ํ˜ธํ™” ํ‚ค ‘l’์˜ ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ๊ฐ€ 12 ์ด๋ฏ€๋กœ ์•ŒํŒŒ๋ฒณ์ƒ์˜ ์ˆœ์„œ์—์„œ ‘n’๋ณด๋‹ค 12์•ž์˜ ๋ฌธ์ž์ธ ‘b’๋กœ ๋ณ€ํ˜•๋œ๋‹ค.

๋ณ€ํ˜•๋œ ๋ฌธ์ž๊ฐ€ ‘a' ์ด์ „์˜ ๋ฌธ์ž๊ฐ€ ๋˜๋ฉด ์•ŒํŒŒ๋ฒณ ์ƒ์—์„œ ๋งจ ๋’ค๋กœ ์ˆœ์„œ๋ฅผ ๋Œ๋ฆฐ๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด ํ‰๋ฌธ์˜ ์„ธ ๋ฒˆ์งธ ๋ฌธ์ž์ธ‘c’๋Š” ์•ŒํŒŒ๋ฒณ ์ƒ์—์„œ 3 ๋ฒˆ์งธ์ด๊ณ  ๋Œ€์‘ํ•˜๋Š” ์•”ํ˜ธํ™”ํ‚ค ‘v'๋Š” ์•ŒํŒŒ๋ฒณ ์ˆœ์„œ 22๋กœ ‘c'์—์„œ 22 ์•ž์œผ๋กœ ๋‹น๊ธฐ๋ฉด ‘a'๋ณด๋‹ค ํ›จ์”ฌ ์•ž์˜ ๋ฌธ์ž์ด์–ด์•ผ ํ•˜๋Š”๋ฐ, ‘a’์•ž์˜ ๋ฌธ์ž๊ฐ€ ์—†์œผ๋ฏ€๋กœ ‘z’๋กœ ๋Œ์•„๊ฐ€ ๋ฐ˜๋ณต๋˜์–ด ‘g’๊ฐ€ ๋œ๋‹ค. ์ฆ‰ ํ‰๋ฌธ์˜ ๋ฌธ์ž๋ฅผ ์•”ํ˜ธํ™”ํ‚ค์˜ ๋ฌธ์ž๊ฐ€ ์•ŒํŒŒ๋ฒณ ์ƒ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ์ˆœ์„œ๋งŒํผ ์•ž์œผ๋กœ ๋บ€ ๊ฒƒ์œผ๋กœ ์•”ํ˜ธํ™”ํ•œ๋‹ค.

ํ‰๋ฌธ์˜ ๋ฌธ์ž๊ฐ€ ๊ณต๋ฐฑ ๋ฌธ์ž์ธ ๊ฒฝ์šฐ๋Š” ๊ทธ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

์ด์™€ ๊ฐ™์€ ์•”ํ˜ธํ™”๋ฅผ ํ–‰ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— ํ‰๋ฌธ์ด, ๋‘˜์งธ ์ค„์— ์•”ํ˜ธํ™” ํ‚ค๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

ํ‰๋ฌธ์€ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž์™€ ๊ณต๋ฐฑ๋ฌธ์ž(space)๋กœ๋งŒ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์•”ํ˜ธํ™” ํ‚ค๋Š” ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋งŒ์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ํ‰๋ฌธ์˜ ๊ธธ์ด๋Š” ๊ณต๋ฐฑ๊นŒ์ง€ ํฌํ•จํ•ด์„œ 30000์ž ์ดํ•˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์•”ํ˜ธ๋ฌธ์„ ์ถœ๋ ฅํ•œ๋‹ค.

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        List<Character> s = new ArrayList<>();
        List<Character> c = new ArrayList<>();
        Scanner sc = new Scanner(System.in);

        String sentence = sc.nextLine();
        String code = sc.next();

        for(int i = 0; i < sentence.length(); i++) {
            s.add(sentence.charAt(i));
        }
        for(int i = 0; i < code.length(); i++) {
            c.add(code.charAt(i));
        }
        int z = 0;
        char j = ' ';
        char[] cd = new char[sentence.length()];
        for(int i = 0; i < cd.length; i++) {
            cd[i] = s.get(i);
        }

        for(int i = 0; i < s.size(); i++) {
            if(s.size() > c.size()) {
                c.add(c.get(i));
            }
            z = c.get(i) - 'a' + 1;
            cd[i] = (char)(s.get(i) - z);
            if(cd[i] < 'a') cd[i] += 26;
            if(s.get(i) == ' ') cd[i] = ' ';
        }
        for(char e : cd) System.out.print(e + "");
    }
}

์ข€ ๋” ๊ฐ„๊ฒฐํ•œ ์ฝ”๋“œ๊ฐ€ ์žˆ์„ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•œ๋ฐ..

์˜์‹์˜ ํ๋ฆ„๋Œ€๋กœ ์ž‘์„ฑํ•˜๋‹ค๋ณด๋‹ˆ ์ด๋ ‡๊ฒŒ ๋๋‹ค. ๐Ÿ˜…

profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!