개인활동(107)
-
백준 10811번: 바구니 뒤집기
n, m = map(int, input().split()) list = list(range(n+1)) for i in range(m): j, k = map(int, input().split()) list[j:k+1] = reversed(list[j:k+1]) print(*list[1:]) 이 문제의 키포인트 swap 어떻게 swap하는가가 중요한 것같다. 나는 reversed를 이용하였는데, reversed는 리스트의 순서를 뒤바꿔주는 함수이다. 다른사람의 숏코드를 확인해본 결과 N,M,*l=map(int,open(0).read().split()) *A,=range(N+1) while l:i,j,*l=l;A[i:j+1]=A[j:i-1:-1] print(*A[1:]) 이렇게 swap해주었다. 다들 비슷한 ..
2023.08.24 -
백준 3052번: 나머지
rest = {(int(input()) % 42) for _ in range(10)} print(len(rest)) 이 문제는 입력받은 수를 42로 나눈 나머지들의 개수를 출력하되 중복된 값은 빼고 개수를 출력해야 한다 중복된 값을 어떻게 빼줄까 고민하던 중 set 자료형을 사용하기로 결정 set 자료형은 중복된 값은 원소로 가지지 않는다. 집합의 특징! 그래서 이를 이용해 문제를 쉽게 풀어줄 수 있었다 그렇다면 숏코드는 어떤가 보자 print(len({int(i)%42for i in open(0)})) 같은 방식을 사용했다. 딱히 뜯어볼 것은 없을 것 같아 다른 숏코드를 찾아본다. 다 비슷하다. 이런. 오늘은 여기서 끝.
2023.08.23 -
백준 5597번: 과제 안 내신 분..?
student = list(range(1, 31)) l = [map(int, input()) for _ in range(28)] print(l) for i in l: student.remove(i); print(student.sort()) 예제로 코드를 돌리면 계속 이렇게 떠서 l의 원소들을 확인해보았었다. 입력받은 각 숫자들이 들어간 것이 아닌 map object로 구성이 되어있었다. 대괄호를 이용해서 그런가 싶어서 list()로 바꾸어봐도 똑같은 결과를 가져온다. 도대체 뭘까 라고 생각하던 중 힌트가 된 글이 하나가 있다. (참고 자료: https://velog.io/@jakob1/SW%EC%82%AC%EA%B4%80%ED%95%99%EA%B5%90-%EC%A0%95%EA%B8%80-%EA%B0%9C..
2023.08.23 -
백준 10813번: 공바꾸기
n, _, *l = map(int, open(0).read().split()) L = [i+1 for i in range(n)] while l: i, j, *l = l; L[i-1], L[j-1] = L[j-1], L[i-1] print(*L) 끼얏호 여기서 중요한 것은 바로 저 뒤에 있는 L[i-1], L[j-1] = L[j-1], L[i-1] 이 부분이다. 각 위치에 있던 값들을 바꿔서 대입해줄 수 있는 방식이다. 내가 왜 틀렸었나 생각했는데 서로 값을 바꿔주어야 하는 것을 제대로 하지 못했었다. 그러면 숏코드 분석도 ㄱ 이번엔 숏코드를 좀 여러개 가져와서 비교해보고자 하였다. 제일 상단에 있는 형태와 내 코드가 점점 비슷해져가고 있어서 혹시나 다른 형태가 존재하는지도 봐야할 것 같다. n,m,*l=..
2023.08.20 -
백준 10810번: 공넣기
i = input baskets, m = map(int, i().split()) basket_list = list(0 for _ in range(baskets)) method = [[*map(int, input().split())] for _ in range(m)] for i in method: for j in range(i[0]-1, i[1]): basket_list[j] = i[2] basket_list[j] = i[2] print(*basket_list) 여기서도 unpacking을 사용하면 좀 쉽게 문제를 풀 수 있다. 저 중첩 반복문을 좀 간단하게 표현하고 싶은데, 어떻게 하면 좋을지 좀 고민을 해봤다. 근데 도저히 떠오르지 않아 바로 숏코드 분석을 하기로 결정했다. 숏코드 1등이 파이썬이라니 ..
2023.08.20 -
백준 2562번: 최댓값
nums = [int(input()) for _ in range(9)] print(max(nums), nums.index(max(nums))+1, sep="\n") 이번 문제... 한줄씩 불러서 list에 어떻게 담을지가 제일 문제였다. split("\n") 얘는 아무런 효과가 없었고, splitlines() 또한 아무런 효과가 없었다. 그래서 반복문을 사용하려고 하였는데, 문제를 제대로 안읽은 나머지 9개의 자연수가 들어온 다는 것을 간과하고 있었다. 그리고 또 간과하고 있던 점, 몇번째에 위치하는지를 보여줘야 하는데 list 인덱스를 생각하고 출력하면 안된다!!! 이를 모르고 nums.index(max(nums))만 넣고 출력했다가 틀려버렸다. 문제는 똑바로 읽자! 그렇다면 오늘도 숏코드 뜯어보기 p..
2023.08.19 -
백준 10818번: 최소, 최대
i = input; i() num_list = list(map(int, i().split())) print(min(num_list), max(num_list)) 실화인가... 처음에 min이랑 max 순서 반대로 적어서 틀려버렸다. 앞에 풀었던 두문제보다 이 코드가 실행 시간이 좀 오래 걸려서 당황스러웠지만.. 쉽게 성공했다. 숏코드를 보고있는데 시간이 나보다 오래걸리지만 코드 길이가 더 짧은 코드들이 있었다. 내장함수를 사용해서 그런걸까? 그렇다면 가장 짧은 숏코드를 보자 print(min(s:=[*map(int,[*open(0)][1].split())]),max(s)) 또 open 함수가 사용되었다. 궁금한 점부터 정리를 해보자. 1. ":="는 무엇인가? 2. "s:="로 사용된 이유는 무엇인가? ..
2023.08.18 -
백준 10871번: X보다 작은 수
i = input n, x = i().split() num_list = list(i().split()) for i in num_list: if int(x) > int(i): print(i, end=' ') 정수형으로 변환을 안해주니 10도 포함이 되었다. 그래서 if문에서 정수형으로 사용을 해주었는데... 아니 왜 10이 포함되는거지? 이해가 안된다. a = str(10) b = str(5) if b > a: print(b) else: print(a) 심지어 이렇게 테스트를 해보았다. 문자열로 넣으면 뭐가 달라지나 싶어서... 근데 결과가 이게 나옴... 뭘까? i = input n, x = i().split() num_list = list(i().split()) for i in num_list: if ..
2023.08.17 -
백준 10807번 : 개수세기
n = int(input()) num_list = list(map(int, input().split())) v = int(input()) print(num_list.count(v)) 일단 나는 이렇게 풀긴 했는데, 숏코드를 구경하던 중 도대체 어떻게 이렇게 짜는걸지 궁금한 코드가 있었다. i=input;i();print(i().split().count(i())) 일단 내가 궁금했던 것을 정리해보자면 1. input에 괄호가 없으면 어떻게 되는가 2. i는 문자열인가 3. i()를 출력하면 무엇이 나오는가 4. 출력문에 써있는 코드는 왜 저렇게 생겼으며 어떠한 이유로 잘 돌아가는가 5. i()가 가능한 이유는 무엇인가 너무 궁금해져서 하나하나 서치를 해보기 시작했다. 1. input에 괄호가 없으면 어떻게..
2023.08.16 -
Regression Evaluation
평가 모델을 돌렸다면 얼마나 이 모델이 정확한지 파악할 수 있어야 한다. 어떤 모델을 사용하냐에 따라 성능평가지표가 달라진다. 평가가 가능한 것은 정답이 있는 학습 방식이다. Quiz1 정답이 있는 학습방식에서만 평가가 가능한 이유는 무엇일까? 머신러닝에서 성능평가지표를 이용해 평가할 수 있는 것은 supervised learning (지도학습)이다. 딥러닝 모델들 중 label(정답)이 존재하는 모델이라면 마찬가지로 성능평가지표를 이용해 모델의 성능을 파악할 수 있다. 성능평가지표 Classification 성능평가지표 Regression 성능평가지표 2. Regression 성능 평가지표 1 ) MAE 2 ) MSE 3 ) RMSE 4 ) MSLE, RMSLE 5 ) R^2 1) MAE Mean Ab..
2023.08.03