IT 14

백준 1562 - 계단 수

noj.am/1562 백준 1562번 계단 수 문제이다. 문제) '계단 수'는 인접한 숫자간의 차가 모두 1인 수를 가리킨다. 자연수 N이 주어졌을 때, N자리 계단 수 중 0~9 모든 숫자가 등장하는 계단 수의 개수를 출력하세요. 풀이) 처음엔 N 이하인 모든 계단수의 개수를 계산하는 줄 알고 백트래킹을 생각했다. 그런데 문제를 다시 읽어보니 0~9 모든 숫자가 들어가야한다는 조건이 있어서 함수 인자로 used라는 set을 추가했다. 그럼에도 TLE(시간초과)가 나서 백트래킹으로 풀기 적합하지 않은 문제란 생각이 들었다. 백트래킹으로 계산하면 0~9가 모두 들어가지 못하는 케이스를 불필요하게 많이 체크하기 때문에 비효율이 발생한다. 문제에서 집중할 부분은 크게 3가지이다. "지금까지 결정한 자리(dig..

IT/Problem Solving 2024.02.02

[Python] python float 'nan', 'inf' 처리

문제상황 txt에 nan과 inf, float 값이 저장된 파일을 읽어와서 다시 float 값으로 변환하고, nan과 inf는 경계값으로 설정하려 했는데 되지 않았다. 생각해보니 map(float, target_list)에서 에러가 생기지 않아서 'nan', 'inf' 모두 float 함수가 실행되긴 했다는 뜻이었다. print(float('nan')) # nan print(type(float('nan')) # print(float('nan') == float('nan')) # False print(float('nan') is float('nan')) # False print(float('nan') is type(float('nan'))) # False print(float('inf')) # inf 해결..

IT/Programming 2023.12.02

[Python] A load persistent id instruction was encountered,but no persistent_load function was specified. 해결

문제 상황 with open(f"./{dir_name}/agents/{id_code}", "rb") as file: saving_list.append(pickle.load(file)) Exception has occurred: UnpicklingError A load persistent id instruction was encountered, but no persistent_load function was specified. .pickle로 저장해둔 object를 불러오려 했는데, 에러가 발생했다. 해결 확장자에 주의한다!(.pickle) 코드를 수정하다가 .pickle이란 확장자를 지우고 파일 이름까지만 작성해둬서 파일이 제대로 인식되지 않은 것 같다. '.pickle' 이란 확장자를 명확히 기술하는 ..

IT/Programming 2023.07.02

[Python] dictionary changed size during iteration 해결

문제 상황 keys = target_dict.keys() for key in keys: if condition(key): target_dict.pop(key) Runtime Error: dictionary changed size during iteration 딕셔너리에서 key를 체크하면서 조건에 맞는 key-value pair를 제거하려 했는데, 에러가 났다. 해결 target_dict.keys() 대신 list(target_dict.keys()) 를 이용한다. .keys() method는 list가 아니라 dict와 연결된 iterable object를 반환하는 것 같다. keys = list(target_dict.keys()) for key in keys: if condition(key): targ..

IT/Programming 2023.06.24

linear model 에러 정리(inconsistent numbers of samples, expected 2d got 1d)

Found input variables with inconsistent numbers of samples: [4, 5] x = X[: 2 + target_idx] y = X[: 2 + target_idx + 1] - 원인: X와 Y의 차원이 달라서 그렇다. - 해결: numpy.array인 X의 인덱싱 과정에서 ,를 빼먹어서 슬라이싱된 상황이었다. ,를 작성해서 해결. x = X[:, 2 + target_idx] y = X[:, 2 + target_idx + 1]​ Expected 2D array, got 1D array instead: from sklearn import linear_model regr = linear_model.LinearRegression() regr.fit(x, y) - 원인: l..

linear model 에러 정리(inconsistent numbers of samples, expected 2d got 1d)

Found input variables with inconsistent numbers of samples: [4, 5] x = X[: 2 + target_idx] y = X[: 2 + target_idx + 1] - 원인: X와 Y의 차원이 달라서 그렇다. - 해결: numpy.array인 X의 인덱싱 과정에서 ,를 빼먹어서 슬라이싱된 상황이었다. ,를 작성해서 해결. x = X[:, 2 + target_idx] y = X[:, 2 + target_idx + 1]​ Expected 2D array, got 1D array instead: from sklearn import linear_model regr = linear_model.LinearRegression() regr.fit(x, y) - 원인: l..

django error (fields.E304) Reverse accessor "Group.user_set" for ~ clashes with reverse accessor for "auth.User.groups". (User 클래스)

문제상황 예제를 따라 만들면서 migrate를 시도했는데, User가 충돌한다는 에러가 나왔다. 예제는 User class를 새로 정의하고, 그 User를 기반으로 django 테이블에 저장할 회원을 관리하는 예제였다. (fields.E304) Reverse accessor 'Group.user_set' for 'accounts.UserModel.groups' clashes with reverse accessor for 'auth.User.groups'. 해결책 settings.py에 django auth를 사용하는 User class를 위 사진처럼 설정해주면 된다. accounts는 User class가 있는 django app(폴더) 이름이다. 검색하자마자 나와서 빠르게 고칠 수 있었다. 참고한 자료..

IT/Development 2023.05.20

django error importing module(WSGI application could not be loaded;) 해결(dependency 체크)

문제 상황 git clone 후 예제를 실행해보려고 python manage.py runserver를 쳤는데, 에러가 나면서 실행이 되지 않았다. 환경변수도 분명 맞게 설정해준 것 같았는데.. django.core.exceptions.ImproperlyConfigured: WSGI application 'backend.wsgi.application' could not be loaded; Error importing module. 해결 여러 블로그를 보다가, whitenoise라는 모듈의 설치가 이슈가 된 케이스를 몇 번 봤다. 그러고보니 wsgi 환경설정을 내 로컬로 해둔 적은 없고, 지난번엔 poetry로 dependency 관리를 하는 프로젝트여서 문제를 못 겪은 것인가 싶었다. 그래서 해결책으로 "..

IT/Development 2023.05.17

Next.js 환경 변수(NEXT_PUBLIC의 의미)

next.js로 프론트엔드를 짜고 있는데, axios를 쓸 때 환경 변수 이름을 뭘로 짓지란 질문이 떠올랐다. 그래서 찾아보니 NEXT_PUBLIC_XXXX로 쓴다는 것을 찾았는데, 여기서 PUBLIC이 어떤 의미를 갖는지 궁금했다. 기본적으로 Next.js에서 환경변수는 이름에 NEXT를 붙이며, 서버에서만 참조가 가능하다. 그러나 NEXT_PUBLIC을 붙인 환경변수는 브라우저와 서버 모두에서 참조가 가능하다고 한다. NEXT_XXX는 서버에서만 참조 가능한 환경변수 NEXT_PUBLIC_XXX는 브라우저와 서버 모두에서 참조 가능한 환경변수

IT/Development 2023.05.17