전체 글(137)
-
백준 알고리즘 11659번(구간합 구하기)
♣ 문제 ♣ 문제 풀이 아이디어 이 문제는 리스트의 구간합을 구하는 문제이다. 반복문을 이용해서 특정 구간의 합을 구할 수도 있지만 시간이 오래 걸린다. 구간합 문제는 첫 번째 숫자부터 특정 숫자를 더한 값을 이용하여 해결할 수 있다 . 위의 예시의 경우 5 4 3 2 1 주어진 수를 하나씩 더해서 요소를 구성하면 0 5 9 12 14 15 이다. 첫 번째 숫자 0은 아무것도 더하지 않았을 때, 5는 첫 번째 수인 5만 더했을 때, 두 번째 수인 9는 5와 4를 더했을 때... 이런 식으로 구성된다. 0 = 수를 더하기 전 5 = 첫 번째 수 9 = 첫 번째 수 + 두 번째 수 12 = 첫 번째 수 + 두 번째 수 + 세 번째 수 14 = 첫 번째 수 + 두 번째 수 + 세 번째 수 + 네 번째 수 15..
2023.12.04 -
백준 1213번(팰린드롬 만들기)
♣ 팰린드롬: 거꾸로 읽어도 제대로 읽는 것과 같은 문장이나 낱말, 숫자, 문자열 ex) 스위스, 기러기, 인도인 등 이미 팰린드롬이 뭔지 알고 있어서 얕봤다가 반례에 큰코 다쳤다. ♣ 팰린드롬의 조건 1. 각각의 문자들이 짝수 개수만큼 있거나 2. 홀수 개수인 문자가 있더라도 딱 한 가지만 있어야 한다. 즉 홀수 개수인 문자가 2개 이상이면 팰린드롬을 만들 수 없다 . ♣ 해결 단계 [주어진 문자열 확인 단계] 주어진 문자열을 받은 후 각 문자열이 몇 개씩 있는지를 딕셔너리로 만듦. 문자는 key값, 문자의 수는 value값으로 지정함 [팰린드롬이 될 수 없는 경우의 수 제거 단계] 딕셔너리의 value값을 values에 넣는다. odd는 value가 홀수인 값의 수를 의미함. 즉 주어진 input에 ..
2023.11.29 -
흉부 엑스선 기반 폐렴 진단(pytorch 사용)
♣ 데이터 탐색 ♣ 데이터 시각화 ♣ 베이스라인 모델 * 데이터셋 및 데이터 로더 생성 이번 장에서는 데이터셋 클래스를 정의하지 않음 -> 타깃값이 같은 이미지끼리 디렉토리로 구분되어 있으면 ImageFolder 클래스를 이용하여 바로 데이터셋을 만들 수 있음 NORMAL 디렉토리에 담긴 이미지의 타깃값은 0, PNEUMONIA 디렉토리에 담긴 이미지의 타깃값은 1로 간주함. ImageFolder 클래스는 root 파라미터에 전달한 경로에 있는 이미지들로 곧바로 데이터셋을 만들어줌. 데이터셋 클래스를 별도로 정의하지 않아도 되어서 편리함! 항상 사용할 수 이는 것은 아니고 타깃값이 같은 데이터들이 같은 디렉토리에 모여 있어야 사용할 수 있음. ♣ 모델 생성 numel( ) 은 텐서 객체가 갖는 구성요소의..
2023.11.18 -
백준 1072번(이분탐색) python
♣ 시도1. 무식하게 수학식으로 도전! 더 게임한 횟수를 m으로 잡고, m을 1씩 늘려가면서 조건에 해당하는지 체크하는 방법이다. 보다시피 수학 식도 지저분하고 쓸데없는 부분까지 들어가있다. ( m을 1부터 시작하는 거니까 z+2와는 굳이 비교할 필요가 없다. ) 시간제한이 없으면 정답 처리되겠지만 당연히 시간 초과로 나가리당했다. ♣ 지저분한 수학식을 함수로 정리해서 도전! 지난 번 스터디에서 그냥 수학식을 푸는 것보다 함수를 정의한 후 함수를 사용하는 게 사용되는 시간을 줄일 수 있다는 것을 배웠다. 그래서 이번에는 지저분한 수학식을 함수로 정의한 후 사용했다. 여전히 시간을 초과해서 실패! ♣ 이분탐색을 이용하여 도전! 본 문제는 이분탐색을 이용하여 해결해야 한다고 한다. 게임을 더 할 수 있는 최..
2023.11.18 -
백준 1929
소수의 조건: 약수가 1과 자신만 있어야 함. 다른 수로는 나뉘면 안 됨 ♣ 첫 번째 시도 M 이상 N 이하의 수들을 하나씩 소수인지 아닌지 따져봄. 숫자가 1이면 소수가 아니므로 바로 break를 준다. 해당 숫자까지 모두 가져와서 나눌 필요 없이 (i // 2) + 1 까지만 가져와서 나누면 된다. 나누는 와중에 나머지가 0이 되면, 즉 약수가 1과 그 자신 외에도 존재하면 break를 준다. 끝까지 나머지가 0이 되는 경우가 없으면 해당 수는 소수이므로 출력한다. -> 시간 초과! ♣ 두 번째 시도 시간 초과를 해결하기 위해 해당 수가 소수인지 확인하는 부분을 함수로 만들었음. all: 파이썬에 내장된 함수. 반복 가능한(iterable) 객체의 모든 요소가 참(True)이면 True를 반환함. 그..
2023.11.16 -
AdamW
torch.optim.AdamW(Adam with Weight Decay)는 AdamW의 옵티마이저 구현체로, 파이토치에서 제공되는 옵티마이저 중 하나임. AdamW는 Adam 옵티마이저의 변형으로, 가중치 감쇠를 적용하는 것이 특징임. 가중치 감쇠는 모델의 가중치를 감소시킴으로써 모델의 복잡성을 제어하고, 오버피팅(overfitting)을 완화하는 효과가 있음. torch.optim.AdamW 함수의 기본 형태와 인수들의 기본값 params: 최적화할 파라미터들의 iterable lr: 학습률(learning rate), 기본값은 0.001 betas: 감마 값들 (beta1, beta2)로 이루어진 튜플, 기본값은 (0.9, 0.999) eps: 분모를 0으로 나누는 것을 방지하기 위한 작은 상수값,..
2023.11.12