-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
문제에서 주어지는 코드 현장에서도 그런가요?
20.03.25 10:54 작성 조회수 99
1
일반적으로 문제에서 주어지는 코드들이, 실제로 코딩테스트 현장에서도 주어지는 것인가요?? 아니면, 쉬운 내용들은 미리 써두고 핵심 알고리즘 부분만 진행하시는 것인가요???
답변을 작성해보세요.
1
푸샵맨 코딩스터디
지식공유자2020.03.25
안녕하세요. 제가 이해한 내용으로 말씀드리면
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;
}
}
답변 1