AR삽질러

B020:ネットサーフィン 본문

日本語/paiza

B020:ネットサーフィン

아랑팡팡 2023. 7. 22. 12:20
728x90

B020:ネットサーフィン
B020:인터넷서핑

import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = Integer.parseInt(scanner.nextLine());

        Stack<String> stack = new Stack<>();
        String currentPage = "blank page";
        stack.push(currentPage);

        for (int i = 0; i < n; i++) {
            String query = scanner.nextLine();

            if (query.equals("use the back button")) {
                if (stack.size() > 1) {
                    stack.pop();
                    currentPage = stack.peek();
                }
            } else if (query.startsWith("go to")) {
                String pageName = query.substring(6);
                stack.push(pageName);
                currentPage = pageName;
            }

            System.out.println(currentPage);
        }

        scanner.close();
    }
}

 

code설명 / code説明

이 프로그램은 해당 쿼리에 대해 현재 페이지를 출력한다. このプログラムは、該当クエリに対して現在のページを出力する。
"use the back button" 쿼리일때 이전 페이지로 돌아가고 「use the back button」 クエリの時、前のページに戻って
"go to [page_name]" 쿼리일때 해당 페이지로 이동한다. goto [page_name]" クエリの時、該当ページに移動する。
stack를 사용해 방문한 페이지를 저장하고 가장 최근에 방문한 페이지를 참조할 수 있다.  stackを使って訪問したページを保存し、一番最近訪問したページを参照することができる。
statck을 통해 "use the back button"쿼리를 처리할때 이전 페이지로 이동하고 "blank page" 는 항상 스택의 가장 밑에 있어야 하므로 스택의 크기가 1보다 클때만 이전페이지로 이동한다. statckを通じて「use the back button」クエリを処理する時は前のページに移動し、「blank page」は常にスタックの一番下になければならないため、スタックの大きさが1より大きい時だけ前のページに移動する。

 

 

변수명설명

n : 시스템에서 입력받은 쿼리의 수 n : システムから入力されたクエリの数
scan : 시스템에서 입력받은 쿼리를 읽는다. scan : システムから入力されたクエリを読む。
stack : 방문한 페이지를 저장한다. stack : 訪問したページを保存する。
currentPage : 현재 페이지 currentPage : 現在のページ
query : 시스템에서 입력받은 쿼리를 저장하고 페이지를 이동하거나 되돌아가는 명령 query : システムから入力されたクエリを保存し、ページを移動または戻るコマンド

 

코드 & 요소설명

1. Scanner scan = new Scanner(System.in);

 - Scanner는 java에서 사용자의 입력을 받는 클래스로 java 표준입력스트림(System.in) 으로 데이터를 읽어온다.

 - Scannerはjavaでユーザーの入力を受けるクラスで、java標準入力ストリーム(System.in )でデータを読んでくる。

 

2. Integer.parseInt(scanner.nextLine());

 - Java Integer 클래스의 정적메소드 : scan.nextLine()에서 반환된 문자열을 Integer.parseInt()에 전달하여 문자열을 정수(int)로 변환한다.

 - Java Integer クラスの静的メソッド:scan.nextLine()から返された文字列をInteger.parse Int()に伝達し、文字列を整数(int)に変換する。

 - 여기서는 사용자로 부터 한줄을 읽어와 int로 변환후 변수명 "n"에 저장한다.

 - ここでは、ユーザーから一行を読んでintに変換した後、変数名「n」に保存する。

 

2. Stack<String> stack = new Stack<>();
    String currentPage = "blank page";
    stack.push(currentPage);

 - Stack는 후입선출(Last-In, First-Out, LIFO) 자료구조

 - Stackは後入選出(Last-In, First-Out, LIFO)資料構造

 - 가장 최근에 추가된 데이터가 가장 먼저 제거된다. 여기서는 페이지 이름을 문자열로 저장해 String 타입의 Stack를 사용

- 直近に追加されたデータが最初に削除される。 ここではページ名を文字列として保存し、String タイプのStack を使用

 - 여기서는 "push()" 메서드를 사용해 "blank page"를 스택에 추가하고 "currntPage"변수에도 저장한다.

- ここでは、「push()」メソッドを使用して「blank page」をスタックに追加し、「currnt Page」変数にも保存する。

 

3. for (int i = 0; i < n; i++) {
            String query = scanner.nextLine();

 - for문을 통해 입력받은 n번의 명령어를 반복한다. scanner.nextLine()명령어로 문자열을 입력받아 한줄씩 읽어오게된다.

- for文を通じて入力されたn番のコマンドを繰り返す。 scanner.nextLine()コマンドで文字列を入力してもらい、一行ずつ読んでくるようになる。

 

4. if (query.equals("use the back button")) {
                if (stack.size() > 1) {
                    stack.pop();
                    currentPage = stack.peek();
                }

 - 조건문 "use the back button" 과 "특정 페이지로 이동" 명령을 구분한다.

- 条件文「use the back button」と「特定ページに移動」命令を区分する。

 

 - stack.pop() : Stack 클레스 메소드, 새로운 항목을 스택의 맨위에 추가한다.

 - stack.pop() : Stack クレスメソッド、新しい項目をスタックの一番上に追加する。

 

 - stack.peek() : Stack 클레스 메소드, stack의 제일 위에 있는 항목을 제저하지 않고 반환한다.

- stack。peek() : Stack クレスメソッド、stack の一番上にある項目を除著せずに返す。

 

 - "use the back buttom"의 경우 stack에서 최근 페이지를 제거하고 "pop()" 그다음 최근 페이지를 현재 페이지로 설정한다."peek()" 

 - 「use the back buttom」の場合、stackから最近のページを削除し、「pop()」、そして最近のページを現在のページに設定する。"peek()"

 

5. } else if (query.startsWith("go to")) {
                String pageName = query.substring(6);
                stack.push(pageName);
                currentPage = pageName;
            }

 

else if (query.startsWith("go to"))

 - "peek()"  "특정 페이지로 이동"의 경우 새로운 페이지를 stack에 추가하고 "push()" 현재 페이지로 설정한다.

 - "peek()" "特定ページへ移動"の場合、新しいページをstackに追加し、"push()"現在のページに設定する。

 

query.startsWith("go to")

 - String 클래스의 메소드, 문자열이 특정 문자로 시작하는지를 검사한다.

 - String クラスのメソッド、文字列が特定の文字で始まるかを検査する。

 

command.substring(6);

 - String 클래스 메소드 / - Stringクラスメソッド

 - 여기서는 comman의 6번째 index부터 문자열의 끝까지를 추출하여 "go to"다음에 오는 페이지의 이름을 추출한다.

- ここではcomanの6番目のindexから文字列の最後までを抽出し、"goto"に続くページの名前を抽出する。

 

6. System.out.println(currentPage);

 - 현재 방문중인 페이지를 출력

 - 現在訪問中のページを出力

728x90
반응형
LIST

'日本語 > paiza' 카테고리의 다른 글

C090:【40万人記念問題】黒電話  (0) 2023.07.18
D120:鉛筆の数  (0) 2023.07.16
C064:paizaでお食事  (0) 2023.07.15
C075:ポイント払い  (0) 2023.07.15
B128:簡易的二次元バーコード  (0) 2023.07.12