본문 바로가기

분류 전체보기

(351)
[프로그래머스] Lv.2 줄 서는 방법 https://school.programmers.co.kr/learn/courses/30/lessons/12936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 이 문제를 해결하는데 거의 4시간? 정도 사용한 것 같다. dfs와 permutations도 효율성 문제에서 아웃돼버렸다.. 정답을 유추하는 데에는 10분채 안걸렸지만 효율성 테스트를 어떻게 해결할 것인가에 대해서 10분을 제외한 나머지 시간을 사용했다. 핵심 포인트는 math 라이브러리에서 factorial을 사용하는 것인데,,,, 어떻게 사용할 것인가가 가장 중요하다. n이 3,..
[프로그래머스] Lv.2 배달 https://school.programmers.co.kr/learn/courses/30/lessons/12978 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 이 문제는 어렵지 않은, 그냥 전형적인 다익스트라 기본 문제이다. 양방향으로 이동이 가능하기 때문에 maps[]에 append할 때, 양방향으로 append해주는 것이 포인트이다. 그리고 1번에서 다른 마을까지의 거리 dist[] 리스트를 이용해서 해당 마을까지의 거리의 값을 구하고, dist에 값을 갱신한다. 거리가 K이하인 개수를 answer에 넣어주면 된다. 2. 정답코드 im..
[Python Error] IndexError: list assignment index out of range 알고리즘 공부하다가 많은 인덱스 에러를 봤지만 할당과 관련된 인덱스 에러를 처음 접해봐서 기록하려고 한다. 위의 사진과 같이 현재 list는 Null 인데, 인덱스를 지정했으므로 에러가 난다. 이와 같은 에러가 발생했을 때 해결방법은 1. append 함수 사용 list.append(1)을 하면, 리스트 첫번째에 '1'이 입력된다. 2. insert 함수 사용 list.append(0, 1)을 하면, 리스트 첫번째에 '1'이 입력된다. 3. 리스트 미리 설정하기 list = [] list = [0] * 10 # list = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] ~ 즉 0이 10개 들어가 있는 리스트화 이렇게 해놓으면 list가 Null 이 아니게 되어 에러가 발생하지 않는다. [참고]..
[프로그래머스] Lv.2 삼각 달팽이 https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 이 문제에 대한 아이디어가 40% 정도밖에 떠오르지 않아 결국 포기한 문제이다. 수학적으로 접근해서 아이디어를 생각해내 해결해야 하는 구현 문제이다. n = 4일 경우에는 [1, 2, 3, 4], [5, 6, 7], [8, 9], [10] 순서대로 배열에 값이 들어가는 것을 확인할 수 있다. 각 순서의 배열은 0 ~ 3 번째로 두고, 0번째의 배열에는 4개, 1번째는 3개... 이러..
[Logging] Python(Fast API)에서 로그를 생성하고 ELK로 로그 테스트 환경 구축 꿀벌 커뮤니티 프로젝트를 진행하면서 elk 로깅 환경 구축을 위해 테스트한 내용을 기록하려고 한다. 개발 환경 Python Fast API ElasticSearch 7.16 Logstash 7.16 Kibana 7.16 하나의 서버에 ELK 기술을 하나의 도커 컴포즈로 묶어서 세팅을 했다. 클라우드 환경 즉, 리눅스 환경에서 ELK를 docker로 띄워야 한다. 1. ELK docker-compose.yml 생성 # docker-compose.yml version: '3' services: elasticsearch: restart: unless-stopped build: ./elasticsearch container_name: elasticsearch volumes: - ./elasticsearch/co..
[Python] 파이썬에서 Header에 IP와 Browser 정보 가져오기 백엔드 로깅을 생성하는 도중에 유저의 ip와 browser 정보가 필요했다. 개발 프레임워크는 Fast API 환경에서 개발하였다. def ip_browser(request): # print("client's user agent is ", request.headers.get('user-agent')) x = 'x-forwarded-for'.encode('utf-8') origin_ip, forward_ip = None, None for header in request.headers.raw: if header[0] == x: # print("Find out the forwarded-for ip address") origin_ip, forward_ip = re.split(', ', header[1].deco..
[프로그래머스] Lv.2 쿼드압축 후 개수 세기 https://school.programmers.co.kr/learn/courses/30/lessons/68936?language=python3 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 해결방법 생각보다 해결할 수 있는 아이디어가 금방 떠올랐다. 예제1로 생각을 하면 처음에는 큰 사각형을 탐색을 시작하고, 그 다음에는 4등분으로 쪼개져서 탐색을 한다. 이때, (0, 0), (0, 2), (2, 0), (2, 2)가 시작점이 된다. 시작점의 값은 0 또는 1이므로 사각형을 탐색했을 때, 시작점의 값과 다르다면 dfs 백트래킹을 이용해서 다시 한번..
[BOJ] 2580. 스도쿠 https://www.acmicpc.net/problem/2580 2580번: 스도쿠 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루 www.acmicpc.net 1. 해결방법 전형적인 스도쿠 문제이다. 스도쿠 문제를 해결하는 원리만 알면 쉽게 풀 수 있는 문제인데 python3로 제출하면 시간초과가 나왔다. 그렇기에 pypy3로 제출,,, 2차원 배열에서 인덱스 값이 0에 해당하는 인덱스 위치를 zero라는 리스트레 append한다. dfs 백트래킹을 이용해서 탐색을 해야하는데, 1 ~ 9 까지 for문을 돌고 0인 위치에서 행과 열, 3X3 정사각형에 ..