일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- springboot
- Spring
- ruby
- Web
- nico
- C로 시작하는 컴퓨터 프로그래밍4판
- java
- 연습문제
- 건담베이스
- rails
- 건담
- 一日一つメソッド
- 비즈니스일본어
- メソッド
- 디지몬
- Python
- DART
- CSS
- html
- 単語
- Flutter
- 반다이몰
- 日本語
- javascript
- vscode
- 자바
- rails7
- 일본어
- jsp
- 인프런
- Today
- Total
AR삽질러
B020:ネットサーフィン 본문
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);
- 현재 방문중인 페이지를 출력
- 現在訪問中のページを出力
'日本語 > 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 |