• 카테고리

    질문 & 답변
  • 세부 분야

    알고리즘 · 자료구조

  • 해결 여부

    미해결

문제에서 주어지는 코드 현장에서도 그런가요?

20.03.25 10:54 작성 조회수 99

1

일반적으로 문제에서 주어지는 코드들이, 실제로 코딩테스트 현장에서도 주어지는 것인가요?? 아니면, 쉬운 내용들은 미리 써두고 핵심 알고리즘 부분만 진행하시는 것인가요???

답변 1

답변을 작성해보세요.

1

안녕하세요. 제가 이해한 내용으로 말씀드리면

1. 예를들어 LevelOrder 문제를 보면

주어지는 것은 , 아래처럼 기본 클래스는 문제에서 줍니다.

class TreeNode{

int val;

TreeNode left, right;

TreeNode(int x){

this.val = x;

}

}

2. 저는 테스트 드라이버(테스트 데이타)를 강의를 위해서 작성합니다.아래처럼 메인함수에다가

질문주신

"쉬운 내용들은 미리 써두고 핵심 알고리즘 부분만 진행하시는 것인가요???"

=> 테스트 드라이버는 아래처럼 미리 만들어 놓고 , 핵심 알고리즘만 진행합니다

public static void main(String[] args) {

TreeNode root = new TreeNode(1);

root.left = new TreeNode(2);

root.right = new TreeNode(3);

root.left.left = new TreeNode(4);

root.left.right = new TreeNode(5);

LevelOrder a = new LevelOrder();

System.out.println(a.solve(root));

}

3. 실제 코딩에서는  아래 처럼 작성됩니다.(아래코드)

그래서 실전에서는 진짜 내 코드가 맞는지 확인이 안될때는  system.out.println();으로 직접

찍습니다. (시험툴마다 다릅니다). 어떤분들은 Ide에서 직접코딩하고 옮기시는분들도 있습니다.

class TreeNode{

int val;

TreeNode left, right;

TreeNode(int x){

this.val = x;

}

}

public class LevelOrder {

public List<List<Integer>> solve(TreeNode root) {

List<List<Integer>> result = new ArrayList<>();

Queue<TreeNode> queue = new LinkedList<>();

queue.offer(root);

while(!queue.isEmpty()) {

int size = queue.size();

List<Integer> list = new ArrayList<>();

for(int i=0; i<size; i++) {

TreeNode node = queue.poll();

list.add(node.val);

if(node.left != null) {

queue.offer(node.left);

}

if(node.right != null) {

queue.offer(node.right);

}

}

result.add(list);

}

return result;

}

}