목록전체 글 (117)
Tiff님의 평행우주
본 튜토리얼은 다중 도메인 의료 영상(발 및 발목 X-ray) 데이터를 활용하여 딥러닝 모델이 임상적 특징 대신 촬영 장비나 마커 등에 의존하는 숏컷 러닝(Shortcut Learning) 문제를 해결하는 과정을 다룬다. 평가 기준에 맞추어 프로젝트 연관성, 기술 내용, 실행 방법 및 결과를 단계별로 설명한다.1. 개요 및 프로젝트 연관성응급실 X-ray 영상에는 부목, 석고 붕대, 고정용 금속물, 텍스트 마커 등 질병과 무관한 이물질이 빈번하게 포함된다. 딥러닝 모델은 이러한 요소에 의존하여 응급도(Triage)를 판단하는 가짜 상관관계(Spurious Correlation) 현상을 보이기 쉽다. 본 튜토리얼에서는 FracAtlas, LERA, AIHub 등 3가지 공개 데이터셋을 통합하여 도메인 불변..
🔬 연구 배경알츠하이머 조기 진단의 중요성알츠하이머병(AD)은 환자 수가 많고 진단 시점에 이미 질병이 상당히 진행되어 치료 시기를 놓치기 쉬운 질환이다. 이러한 문제를 해결하고 예방 확률을 높이고자, AI 기술을 활용하여 경도인지장애(MCI) 단계에서 AD로의 전환을 조기에 탐지하는 연구를 진행한다. 기존 연구는 고가의 PET나 심화 단계에 유리한 구조 MRI에 의존하거나, fMRI를 사용하더라도 데이터의 일반화 및 모델 해석력 측면에서 한계가 있었다. 💡 연구의 핵심rs-fMRI와 멀티모달 AI의 융합본 프로젝트는 기존 연구 대비 비용 효율적인 rs-fMRI(휴지기 기능성 자기공명영상)를 주된 데이터로 사용하며, 다음 세 가지 핵심 방법론을 통해 모델의 신뢰도와 임상적 가치를 극대화하고자 한다...
📖 문제https://leetcode.com/problems/roman-to-integer/description/ 로마 숫자 s가 주어졌을 때, 이를 정수로 변환하기 🗝️ 풀이 로마 숫자 → 정수 매핑을 위한 객체 생성문자열 s를 for문으로 돌면서 현재 문자와 다음 문자를 비교현재 값이 다음 값보다 작으면 뺄셈 규칙 적용 → sum -= cur, 그렇지 않으면 더함 → sum += cur마지막에 누적된 sum 반환/** * @param {string} s * @return {number} *///hashtable, math, string var romanToInt = function (s) { const roman = { 'I': 1, 'V': 5, 'X': 10, 'L': 50,..
📖 문제https://leetcode.com/problems/palindrome-number/정수 x가 주어졌을 때, 이 수가 앞에서 읽어도 뒤에서 읽어도 같은 수인지 판별하기🗝️ 풀이 음수는 무조건 팰린드롬이 아니므로 x 숫자 x를 문자열로 바꾼 뒤, split(), reverse(), join()을 사용해 뒤집은 문자열과 비교문자열이 같다면 팰린드롬 → true, 아니면 false /** * @param {number} x * @return {boolean} */ //math var isPalindrome = function(x) { return x 📌 배운 점 / 느낀 점 확실히 조건문보다 삼항 연산자를 활용했을 때 간단하다는 점
📖 문제https://leetcode.com/problems/valid-parentheses/문자열 s가 주어졌을 때, 괄호가 올바르게 열리고 닫혔는지를 확인하여 유효한 괄호 문자열인지 판단하기🗝️ 풀이괄호의 짝을 맞추기 위해 stack을 사용)가 나오면 그에 대응하는 여는 괄호 (가 stack의 마지막에 있어야 함 → 이 매칭 정보를 map 객체에 저장for...of 문으로 문자열 s를 한 글자씩 순회여는 괄호라면 push()닫는 괄호라면 pop()하여 짝이 맞는지 확인stack.length === 0이면서 닫는 괄호가 나오면 false 반환순회가 끝난 후에도 stack에 남아있는 괄호가 있다면 false/** * @param {string} s * @return {boolean} */var isV..
📖 문제https://leetcode.com/problems/search-insert-position/description/정렬된 정수 배열 nums와 타겟 값 target이 주어졌을 때, target이 배열에 존재하면 해당 인덱스를 반환하고, 존재하지 않으면 삽입될 위치의 인덱스를 반환하기🗝️ 풀이 includes()를 사용해 배열에 target이 이미 존재하는지 확인존재하면 indexOf()로 해당 인덱스를 바로 반환존재하지 않으면 push()로 배열에 삽입한 뒤, sort()로 오름차순 정렬하고 다시 indexOf()로 위치를 찾아 반환 /** * @param {number[]} nums * @param {number} target * @return {number} */var searchInse..
📖 문제https://leetcode.com/problems/longest-common-prefix/ 문자열 배열 strs가 주어졌을 때, 모든 문자열에 공통으로 존재하는 가장 긴 접두사를 찾아 반환하기🗝️ 풀이 문자열 배열을 sort()로 사전 순 정렬정렬된 배열의 첫 번째 문자열과 마지막 문자열만 비교while문을 사용해 first[i]와 last[i]가 같을 때까지 i를 증가시킴 slice(0, i)를 이용해 접두사 부분만 잘라서 반환 /** * @param {string[]} strs * @return {string} */var longestCommonPrefix = function (strs) { let newStrs = strs.sort() let first = newStrs[0..
📖 문제 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr로또 번호(lottos)와 당첨 번호(win_nums)가 주어질 때, 알아볼 수 없는 숫자(0)를 포함해 당첨 가능한 최고 순위와 최저 순위를 구하기🗝️ 풀이 for문을 순회하며 lottos 배열에서 각 번호가 win_nums에 포함된 경우 count를 증가시킴 번호가 0인 경우 zero를 증가시킴 count와 zero를 합산하여 최고 순위 계산 count 만 고려해 최저 순위 계산 function solution(lottos, win_nums) { let count = 0; //lottos와 win_nums에 공통적으로 있는 수의 개수..
1️⃣스택이란?= 먼저 입력한 데이터를 제일 나중에 꺼낼 수 있는, LIFO (Last In First Out) 자료구조 푸시 push: 스택에 삽입하는 연산팝 pop: 스택에서 꺼내는 연산 2️⃣스택의 정의스택의 ADTADT = Abstract Data Type. 추상 자료형. 인터페이스만 있고 실제로 구현은 되지 않은 자료형. 구분정의설명연산boolean isFull()스택에 들어있는 데이터 개수가 maxsize이면 true, 아니면 falseboolean isEmpty()스택에 들어있는 데이터가 하나라도 있으면 false, 아니면 true void push(ItemType item)스택에 데이터를 pushItemType pop()스택에서 데이터를 pop상태Int top스택에서 최근에 push 한 데..
1️⃣배열 개념 같은 타입의 원소들을 효율적으로 관리할 수 있다. 하나의 변수 이름으로 동일한 타입의 데이터를 그룹화 하여 관리할 수 있다. 인덱스로 원하는 데이터에 임의 접근 할 수 있으며, 배열의 인덱스는 0부터 시작한다.JS의 배열은 동적으로 크기를 조절할 수 있도록 구현되어 있다. 배열 선언1. 리터럴const arr = [0, 1, 2, 3, 4] 2. 배열 생성자const arr1 = new Array(5);const arr2 = [...new Array(6)].map((_, i) => i + 1); //[1, 2, 3, 4, 5, 6] 3. Array.fill() const arr = new Array(6).fill(0); //[0, 0, 0, 0, 0, 0]배열과 차원배열은 차원과 무..