728x90 note12 BFS (Breadth First Search, 너비 우선 탐색) 접근 graph 또는 tree를 탐색하는 알고리즘이다. 특정 노드부터 시작하여 인접한 노드들을 먼저 탐색한다. (최단 경로를 찾을 때 사용) 특정 노드로부터의 거리에 따라 순서대로 탐색한다. 알고리즘 큐(queue)와 while문을 사용한다. 큐(queue)에서 꺼낼 때, 그 노드를 visit 했다고 표시한다. 큐(queue)에서 꺼낸 노드와 인접한 노드들을 큐(queue)에 집어넣는다. 큐(queue)가 empty상태가 될 때까지 수행한다. Pseudo-code while(!queue.empty){ current = queue.pop; current.visited = true; for(current.adj) if(!adj.visited) queue.push(adj); } 적용 더보기 https://jo.. 2022. 5. 22. DFS (Depth First Search, 깊이 우선 탐색) 접근 graph 또는 tree를 탐색하는 알고리즘이다. 특정 노드부터 시작하여 최대한 멀리 갈 수 있을만큼 진행한다. 바로 전 분기점까지 돌아가고 아직 방문하지 않은 다음 노드로 진행한다. (방문한 노드들은 표시한다) 알고리즘 재귀함수를 사용한다. 현재 노드를 visit 했다고 표시한다. 인접해있고 visit하지 않은 노드를 탐색하고 해당 노드의 index를 넣은 재귀함수를 호출한다. Pseudo-code dfs(current){ visited[current] = true; for(adj){ if(!visited[adj]) dfs(adj); } } 적용 더보기 https://jolly-note.tistory.com/61 [백준/baekjoon] Silver4 1388. 바닥 장식 DFS -DFS 링크 추.. 2022. 5. 22. ?, ! 사용법 간단 정리 코틀린은 기본적으로 변수에 null을 넣을 수 없다. 하지만, ?를 사용하면 넣을 수 있다. ? null 일 수 있음(값이 없을 수 있음) ?. null을 안전하게 처리, 변수가 null이 아닐 때 . 뒤쪽을 수행 ex) 변수?.toUpperCase() ?: null인 경우 default값을 설정할 수 있다. ex) 넣을 곳 = 변수 ?: "null일때 수항해고 싶은거" !! null이 아님!!! 2022. 5. 12. Log 사용법 간단 정리 Debug Log.d("tag", "string") 오류(error) Log.e("tag", "string") 경고(warning) Log.w("tag", "string") 정보(info) Log.i("tag", "string") 상세(verbose) Log.v("tag", "string") 2022. 5. 11. Data Binding 사용법 간단 정리 https://developer.android.com/topic/libraries/data-binding 데이터 결합 라이브러리 | Android 개발자 | Android Developers 데이터 결합 라이브러리 Android Jetpack의 구성요소. 데이터 결합 라이브러리는 프로그래매틱 방식이 아니라 선언적 형식으로 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있는 지원 developer.android.com 코드 양이 줄어들고 가독성이 좋아진다는 장점과 느려진다는 단점이 있다. example build.gradle(Module) 의 android에 dataBinding{ enabled true }를 입력 xml을 으로 감싸줌 MainActivity에 onCreate 위에 private.. 2022. 5. 10. [programmers] Lv.1 신규 아이디 추천(Kotlin 공부용) 이번엔 두가지를 골라 분석해봤다. (문제시 삭제하겠음!!) 문제 https://programmers.co.kr/learn/courses/30/lessons/72410?language=kotlin 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 참고 코드1 https://velog.io/@rkdals3912/Lv.1-%EC%8B%A0%EA%B7%9C-%EC%95%84%EC%9D%B4%EB%94%94-%EC%B6%94%EC%B2%9C Lv.1 신규 아이디 추천 문제- 신규 아이디 추천 오랜만에 알고리즘 문.. 2022. 5. 8. [programmers] Lv.1 로또의 최고 순위와 최저 순위(Kotlin 공부용) 이번엔 간단해보여서 내 c++ 코드를 kotlin으로 바꿔보는 작업도 하고 추가로 c++ 사용자로서 신기해보이는 코드를 해석해봤다. (문제시 삭제하겠음!) 참고로 공부하는 용도였기 때문에 프로그래머스에 실행만 해봤지 채점은 안해봤다. 문제 https://programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 참고 코드1 (내 c++ 코드) https://jolly-note.tistor.. 2022. 5. 8. [programmers] Lv.1 신고 결과 받기(Kotlin 공부용) kotlin을 공부하면서 문법을 하나하나 하는것보다 c++로 풀었던것을 다시 kotlin으로 풀어보는것이 도움이 되지 않을까 해서 다른 분들의 코드를 해석하는것을 시작하였다. (문제시 삭제하겠음) 문제 https://programmers.co.kr/learn/courses/30/lessons/92334 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 참고 코드 https://velog.io/@nightlyherb/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8.. 2022. 5. 8. linked list - 이중(doubly) 연결 리스트(c++) 양방향으로 연결돼있는 linked list이다. 현 노드에서 이전 노드와 앞의 노드로 갈 수 있다. + singly linked list는 각 노드가 다음 노드만 가리킨다. + circular linked list는 각 노드가 다음 노드만 가리키는데, 마지막 노드가 처음 노드를 가리키고 있다. 프로그래머스 풀이 시 doubly linked list를 만들 일이 있어서 doubly로 쓰게 되었으나, Node 만드는 법만 알면 다른것도 쉽게 만들 수 있다. Node struture을 만들어준다. 간단한거라서 struture로, 복잡한건 class로 만들자. 만드는 법을 까먹었다면(내가 까먹음) 아래를 참고해주자. https://docs.microsoft.com/ko-kr/cpp/cpp/initializing.. 2022. 4. 27. 분류 모델 평가 지표 Confusion Matrix 실제 Postive Negative 예측 Positive True Positive False Positive Negative False Negative True Negative True Positive(TP): Positive를 Positive라고 예측(True) False Positive(FP): Negative를 Positive라고 예측(False) False Negative(FN): Positive를 Negative라고 예측(False) True Negative(TN): Negative를 Negative라고 예측(True) Accuracy(정확도) : 예측 결과에서 정답 비율 \[Accuracy = \frac{TP + TN}{TP + TN + FP + FN}\] Pre.. 2022. 2. 25. 이전 1 2 다음 728x90