책 '이것이 취업을 위한 코딩 테스트다'를
기반으로 공부하였습니다.
https://github.com/ndb796/python-for-coding-test
이번에는 구현관련 문제를 풀어보았습니다. 해당 문제에서 모르는 개념이 좀 많이 나왔습니다. 그래서 중요하다고 생각하여 다시 한번 풀어보기위해 글을 작성해 보았습니다.
1.상하좌우
입력조건
- 첫째 줄에 공간의 크기를 나타내는 N이 주어진다.(1<=N<=100)
- 둘째 줄에 여행가 A가 이동할 계획서 내용이 주어진다.(1<=이동횟수<=100)
출력조건
-첫째 줄에 여행가 A가 최종적으로 도착할 지점의 좌표 (X,Y)를 공백으로 구분하여 출력한다.
작성코드(Java)
import java.util.*;
public class test4_important {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
int N = kb.nextInt();// 정수 엔터키 를 누르면 정수는 변수에 대입이 되고 엔터키는 버퍼에 남게되어서
kb.nextLine(); //해당 코드로 버퍼를 비워줘야한다.
int i=0;
int j=0;
//배열크기 선언하지않고 문자열배열 사용하는법
String[] plan = kb.nextLine().split(" ");
for(int u =0; u<plan.length; u++) {
switch(plan[u]) {
case "R":
if(j<N-1) {
j++;
}
break;
case "L":
if(j>0) {
j--;
}
break;
case "U":
if(i>0) {
i--;
}
break;
case "D":
if(i<N-1) {
i++;
}
break;
default:
break;
}
}
System.out.println("("+(i+1)+","+(j+1)+")");
kb.close();
}
}
설명
: kb.nextLine()으로 버퍼를 비워주는 코드를 작성했다. 이 부분에서 nextInt()에 정수값을 입력하고 엔터키를 누르면 정수값만 변수에 들어가고 엔터키는 버퍼에 남게되어서 다음 입력값을 받을 때 해당 변수에 엔터키값이 들어가게된다. 따라서 해당코드로 버퍼를 비워주어야 한다. 해당문제는 배열의 크기를 지정하지않고 입력값을 토대로 작동하는 코드를 작성해야한다. 따라서 String[] plan = kb.nextLine().split(" ");를 이용하여 " "공백 단위로 문자열을 읽어오며, 그 입력값 개수에 맞게 배열이 형성된다.
'코딩테스트' 카테고리의 다른 글
[코딩테스트]DFS(음료수 얼려 먹기) (0) | 2022.01.04 |
---|---|
[코딩테스트]BFS (0) | 2022.01.01 |
[코딩테스트]DFS (0) | 2021.12.31 |
[코딩테스트]그리디(큰 수의 법칙) (0) | 2021.12.27 |
코딩테스트 (0) | 2021.12.27 |