본문 바로가기

프로그래밍17

[코테 js] treeBFS 너비 우선 탐색(BFS, Breadth First Search) 문제 임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 너비 우선 탐색(BFS, Breadth First Search)을 합니다. 이때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다. let bfs = function (node) { // TODO: 여기에 코드를 작성합니다. }; // 이 아래 코드는 변경하지 않아도 됩니다. 자유롭게 참고하세요. let Node = function (value) { this.value = value; this.children = []; }; // 위 Node 객체로 구성되는 트리는 매우 단순한 형태의 트리입니다. // membership check(중복 확인)를 따로 하지 않습니다. Node.prototype.a.. 2023. 1. 18.
[코테] 멱집합(Power set) 문제 하나의 집합을 의미하는 문자열을 입력받아 각 문자를 가지고 만들 수 있는 모든 부분집합을 리턴해야 합니다. 입력 인자 1: str string 타입의 공백이 없는 알파벳 소문자 문자열 출력 배열(arr)을 리턴해야 합니다. arr[i]는 각 부분집합의 원소로 구성된 문자열 주의사항 arr[i]는 각 부분집합을 구성하는 원소를 연결한 문자열입니다. arr[i]는 알파벳 순서로 정렬되어야 합니다. 집합은 중복된 원소를 허용하지 않습니다. 부분집합은 빈 문자열을 포함합니다. arr은 사전식 순서(lexical order)로 정렬되어야 합니다. 입출력 예시 let output1 = powerSet('abc'); console.log(output1); // ['', 'a', 'ab', 'abc', 'ac',.. 2023. 1. 16.
[코테 js] treeDFS 깊이 우선 탐색 문제 문제 임의의 tree를 구성하는 노드 중 하나의 Node 객체를 입력받아, 해당 노드를 시작으로 깊이 우선 탐색(DFS, Depth First Search)을 합니다. 이때, 탐색되는 순서대로 노드의 값이 저장된 배열을 리턴해야 합니다. 인자1 : node 'value', 'children' 속성을 갖는 객체 (Node) 'node.value'는 number 타입 'node.children'은 Node를 요소로 갖는 배열 입출력 예시 let root = new Node(1); let rootChild1 = root.addChild(new Node(2)); let rootChild2 = root.addChild(new Node(3)); let leaf1 = rootChild1.addChild(new Nod.. 2023. 1. 9.
[Android] FragmentManager replace메서드와 add메서드 문제 BottomNavigation과 5개의 fragment로 메인을 구성하였는데 탭을 이동하거나 back버튼을 눌렀을 때 문제가 생겼다. fragment를 전환 할 때마다 화면이 지워지고 다시 생성되는데 앱이 느려지는 문제 뿐만이 아니라, 매번 화면 재생성을 하느라 메모리도 많이 먹고 기존에 하던 작업이나 스크롤 위치가 다 날라갔다.. 원인 화면 재생성을 막으려고 온갖 조건문을 걸고 onCreateView에 있던 순서도 바꿔봤는데 소용이 없었다. 겨우 원인을 찾았는데, 원인은 fragment끼리 이동할 때 서로 visible, invisible 되는 줄알았는데, 이동하면 이전 모든 fragment는 destroy되고 새로운 fragment만 남아서 애초에 삭제된 fragment를 유지하려고 뻘짓을 했던.. 2022. 1. 27.
[Kotlin] 데이터 바인딩 class MainActivity : AppCompatActivity() { private lateinit var binding : ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) binding = DataBindingUtil.setContentView(this, R.layout.activity_main) // 1번 방식 - findViewById // val btn = findViewById(R.id.testBtnId) // btn.setOnClickListener { // Toast.mak.. 2021. 9. 7.