えらく時間がかかったPaiza「パスワード作成」

久しぶりの投稿になります。
あまりにも忙しく、ぜんぜんプログラミングの時間が作れませんでした。
とはいえ、Java入門編は修了し、現在はアルゴリズム入門の講座に入りました。
挿入ソートと選択ソートをなんとか実装できるようになったところです。

今回は、Paiza問題集からCクラス問題の「パスワード作成」を紹介します。
というのも、すぐできるかと思ったら結構時間がかかったので・・・

paiza.jp

ちょっとイヤだったのは、覚えない文字が与えられるのが一番最後というところでした。
理想は、配列のインデックスと覚える文字の位置を紐づけるというやり方だったのですが、覚えない文字が最後にあることでそれが(個人的には)難しくなりました。

なんとか書き上げたコードが以下

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int q =sc.nextInt();
        int[] passNum = new int[q];
        String[] passKey = new String[q];
        
        for (int i = 0; i < q; i++) {
            passNum[i] = sc.nextInt();
            passKey[i] = sc.next();
        }
        
        String c = sc.next();
        
        String[] pass = new String[n];
        
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < q; j++) {
                if (i == passNum[j] - 1) {
                    pass[i] = passKey[j];
                    break;
                } else {
                    pass[i] = c;
                }
            }
            System.out.print(pass[i]);
        }
    }
}

breakの位置をずっと間違っていて、覚えない値が何個も出力されて困ったりしましたが、なんとかこれでACでした。うーん、もっとうまいやり方があるんだろうな・・・