일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- gs25
- 백준
- Git
- Docker
- 맥북
- 캐치카페
- 편스토랑 우승상품
- Real or Not? NLP with Disaster Tweets
- ChatGPT
- SW Expert Academy
- 파이썬
- PYTHON
- programmers
- 프로그래머스 파이썬
- 더현대서울 맛집
- 편스토랑
- Kaggle
- 자연어처리
- 우분투
- leetcode
- hackerrank
- ubuntu
- 코로나19
- Baekjoon
- github
- 프로그래머스
- dacon
- 금융문자분석경진대회
- 데이콘
- AI 경진대회
- Today
- Total
목록
반응형
Programming (1169)
솜씨좋은장씨
Reverse a linked list from position m to n. Do it in one-pass. Note: 1 ≤ m ≤ n ≤ length of list. Example: Input: 1->2->3->4->5->NULL, m = 2, n = 4 Output: 1->4->3->2->5->NULL 첫번째 시도 # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def reverseBetween(self, head: ListNode, m: int, n: int) -> ListNode:..
1일 1문제 280일차! 오늘의 문제는 프로그래머스의 최고의 집합 문제입니다. 코딩테스트 연습 - 최고의 집합 자연수 n 개로 이루어진 중복 집합(multi set, 편의상 이후에는 집합으로 통칭) 중에 다음 두 조건을 만족하는 집합을 최고의 집합이라고 합니다. 각 원소의 합이 S가 되는 수의 집합 위 조건을 만족 programmers.co.kr Solution def solution(n, s): answer = [] if s // n < 1: answer = [-1] else: s_n = s // n for i in range(n): answer.append(s_n) s_p_n = s % n idx = len(answer) - 1 for i in range(s_p_n): answer[idx-i] = a..
Elasticsearch에서 종종 reindexing 을 할 경우가 있습니다. 최근 프로젝트를 진행하면서 기존에 ES 서버에 인덱싱되어있는 인덱스를 새롭게 만든 서버에서 인덱싱을 할 일이 있었습니다. kibana에서 reindex 명령어를 입력하여 시도를 하였는데 Not whitelisted in reindex.remote.whitelist 위와 같은 오류를 만나게 되었습니다. 이를 해결하는 방법은 다음과 같습니다. 먼저 elasticsearch가 설치된 곳으로 이동합니다. 거기서 elasticsearch.yml 파일을 찾아 한 줄을 추가해주면 됩니다. reindex.remote.whitelist: "0.0.0.0:9200" reindex.remote.whitelist: "원하는IP:PORT" 그리고 나..
각 페이지별 이미지 변환 ( pdf to jpg ) - pdf2image 활용 여러 페이지로 구성되어있는 pdf 파일을 각 페이지별 이미지로 변환하는 방법에 대해서 적어보려 합니다. 먼저 이 과정을 진행하기 위해서 필요한 라이브러리를 설치합니다. pdf2image A wrapper around the pdftoppm and pdftocairo command line tools to convert PDF to a PIL Image list. pypi.org pip install pdf2image 그 다음 아래의 코드를 활용하여 pdf파일의 각 페이지를 jpg 이미지로 변환하면 됩니다. #-*- coding:utf-8 -*- from pdf2image import convert_from_path file_n..
docker에서 mecab을 활용하려고 이것 저것 여러 페이지를 참고하며 시도해보았던 내용 중 성공했던 내용에 대해서 적어보려 합니다. Dockerfile FROM ubuntu:16.04 # Python RUN apt-get update && \ apt-get install -y --no-install-recommends apt-utils && \ apt-get -y install software-properties-common && \ add-apt-repository -y ppa:deadsnakes/ppa && \ apt-get update --fix-missing && \ apt-get -y install --fix-missing python3.6 && \ apt-get -y install --fi..
1일 1문제 279일차의 문제는! 프로그래머스의 이상한 문자 만들기 입니다. 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 programmers.co.kr 첫 번째 시도 def solution(s): s_list = list(s) for i in range(len(s_list)): if i % 2 == 0: s_list[i] = s_list[i].upper() elif i % 2 == 1: s_list[i] = s_list[i].lower() answer = "".join(s_list) return answer 이 문제는 짝수..
docker를 사용하면서 코드를 수정하면 이미지를 다시 만들어야 하는데 코드 내에 API를 호출할때 활용하는 url, endpoint 정보나 여러 설정값들을 바꿀때마다 다시 이미지를 만들고 실행하는데 번거로움이 있었습니다. 이런 설정값들을 좀 더 편하게 수정할 수 있는 방법을 최근에 알게되어 적어보려 합니다. 먼저 python 코드 내에서 설정값을 적는 부분을 수정하여 줍니다. config.py 수정 전 NER_INFO = { "ip":"0.0.0.0", "port" : "23232" } config.py 수정 후 import os NER_INFO = { "ip":os.environ.get("NER_IP", "0.0.0.0"), "port":os.environ.get("NER_PORT", "23232")..
1일 1문제 278일차의 문제는 프로그래머스의 두 개 뽑아서 더하기 입니다. 코딩테스트 연습 - 두 개 뽑아서 더하기 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr Solution from itertools import combinations def solution(numbers): return list(sorted(set([sum(combs) for combs in combinations(numbers, 2)]))) Solution 해설 먼저 이 문제는 숫자가 담긴 리스트를 주면 여기서 숫자를 두개..
최근에 API를 만들면서 API 요청에 대한 로그를 남겨야하는 일이 있어 python의 logging을 활용하여 로그를 남기려고 코드를 작성하여 실행하였는데 로그를 찍으면 찍을 수록 중복되어 찍히는 로그가 점점 많아 졌습니다. 수정 전 코드 import os import logging import logging.handlers def request_log(query, subj, prop, top1_prop, elapsed_time): dir_path = "./log_data/kbqa" if not (os.path.isdir(dir_path)): os.makedirs(os.path.join(dir_path)) logger = logging.getLogger("kbqa_search") logger.setLe..
Given the array of integers nums, you will choose two different indices i and j of that array. Return the maximum value of (nums[i]-1)*(nums[j]-1). Example 1: Input: nums = [3,4,5,2] Output: 12 Explanation: If you choose the indices i=1 and j=2 (indexed from 0), you will get the maximum value, that is, (nums[1]-1)*(nums[2]-1) = (4-1)*(5-1) = 3*4 = 12. Example 2: Input: nums = [1,5,4,5] Output: 1..
이 글에서는 Mac OS 가 설치된 맥북, 아이맥, 맥 등에서 파이썬을 활용하여 코딩을 할 때 영어나 숫자로 되어있는 이름의 파일은 문제가 없는데 윈도우에서 가져온 파일 중에 한글로 된 파일을 가져와서 데이터를 로드하여 사용하려하면 오류가 나지는 않는데 제대로 파일에 접근하여 다른 작업을 하지 못할때 해결하는 방법에 대해서 적어보려합니다. 원인 먼저 이렇게 한글로 된 파일은 맥과 윈도우에서 한글을 표현할 때 사용하는 방식이 다르기 때문입니다. 맥에서 만든 파일을 윈도우로 가져갔을 때 파일이름의 자모가 분리되어 보이는 문제도 같은 이유로 발생합니다. 맥은 NFD ( Normalization Form Decomposition ) 방법을 윈도우는 NFC ( Normalization Form Compositio..
Given two string arrays word1 and word2, return true if the two arrays represent the same string, and false otherwise. A string is represented by an array if the array elements concatenated in order forms the string. Example 1: Input: word1 = ["ab", "c"], word2 = ["a", "bc"] Output: true Explanation: word1 represents string "ab" + "c" -> "abc" word2 represents string "a" + "bc" -> "abc" The stri..
You are given an m x n integer grid accounts where accounts[i][j] is the amount of money the ith customer has in the jth bank. Return the wealth that the richest customer has. A customer's wealth is the amount of money they have in all their bank accounts. The richest customer is the customer that has the maximum wealth. Example 1: Input: accounts = [[1,2,3],[3,2,1]..
You own a Goal Parser that can interpret a string command. The command consists of an alphabet of "G", "()" and/or "(al)" in some order. The Goal Parser will interpret "G" as the string "G", "()" as the string "o", and "(al)" as the string "al". The interpreted strings are then concatenated in the original order. Given the string command, return the Goal Parser's interpretation of command. Examp..
Given an array of positive integers arr, calculate the sum of all possible odd-length subarrays. A subarray is a contiguous subsequence of the array. Return the sum of all odd-length subarrays of arr. Example 1: Input: arr = [1,4,2,5,3] Output: 58 Explanation: The odd-length subarrays of arr and their sums are: [1] = 1 [4] = 4 [2] = 2 [5] = 5 [3] = 3 [1,4,2] = 7 [4,2,5] = 11 [2,5,3] = 10 [1,4,2,..
최근 제가 만든 코드의 실행 속도를 측정해야하는 일이 있었습니다. 다양한 방법이 있지만 저는 datetime을 활용하여 측정해보았습니다. datetime을 활용하는 방법은 다음과 같습니다. import datetime 먼저 datetime 라이브러리를 import 합니다. start_time = datetime.datetime.now() # ( 측정을 하고자 하는 코드 ) end_time = datetime.datetime.now() datetime.datetime.now( ) 를 활용하여 코드 실행 전, 후 시간을 가져옵니다. elapsed_time = end_time - start_time 그 다음 코드 실행 후 시간에서 코드 실행 전 시간을 빼줍니다. 여기서 얻은 elapsed_time을 활용하여 ..
You are given the array paths, where paths[i] = [cityAi, cityBi] means there exists a direct path going from cityAi to cityBi. Return the destination city, that is, the city without any path outgoing to another city. It is guaranteed that the graph of paths forms a line without any loop, therefore, there will be exactly one destination city. Example 1: Input: paths = [["London","New York"],["New..
Given a list of sorted characters letters containing only lowercase letters, and given a target letter target, find the smallest element in the list that is larger than the given target. Letters also wrap around. For example, if the target is target = 'z' and letters = ['a', 'b'], the answer is 'a'. Examples: Input: letters = ["c", "f", "j"] target = "a" Output: "c" Input: letters = ["c", "f", "..
Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numbers from the original list. Return the linked list sorted as well. Example 1: Input: 1->2->3->3->4->4->5 Output: 1->2->5 Example 2: Input: 1->1->1->2->3 Output: 2->3 Solution from collections import Counter # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=Non..
이 글에서는 pdf2image 라이브러리를 활용하여 pdf 파일을 image로 변환하는 방법에 대해서 적어보려 합니다. 먼저 pdf 파일목록을 os 를 활용하여 받아옵니다. import os file_list = os.listdir("./source/") 저는 source 디렉토리에 3개의 pdf 파일을 담아두었기에 os의 listdir을 활용하여 ./source/ 디렉토리의 파일 목록을 가져왔습니다. file_list ['TA_클러스터링_핵심어추출.pdf', 'Word_Embedding_자질을_이용한_한국어_개체명_인식_및_분류.pdf', 'journal_ktsde_9-4_752015269.pdf'] from pdf2image..
Python에서 pdf2image 라이브러리를 활용하여 pdf를 이미지로 변경하려는 코드를 실행하려고하니 아래와 같은 오류가 발생하였습니다. from pdf2image import convert_from_path pages = convert_from_path("./source/" + file_list[0], 500) --------------------------------------------------------------------------- FileNotFoundError Traceback (most recent call last) ~/anaconda3/lib/python3.7/site-packages/pdf2image/pdf2image.py in pdfinfo_from_path(pdf_path..
Given a sorted linked list, delete all duplicates such that each element appear only once. Example 1: Input: 1->1->2 Output: 1->2 Example 2: Input: 1->1->2->3->3 Output: 1->2->3 Solution # Definition for singly-linked list. # class ListNode: # def __init__(self, val=0, next=None): # self.val = val # self.next = next class Solution: def deleteDuplicates(self, head: ListNode) -> ListNode: list_val..
Given the head of a linked list, return the list after sorting it in ascending order. Follow up: Can you sort the linked list in O(n logn) time and O(1) memory (i.e. constant space)? Example 1: Input: head = [4,2,1,3] Output: [1,2,3,4] Example 2: Input: head = [-1,5,3,4,0] Output: [-1,0,3,4,5] Example 3: Input: head = [] Output: [] Constraints: The number of nodes in the list is in the range [0,..
Given a string IP, return "IPv4" if IP is a valid IPv4 address, "IPv6" if IP is a valid IPv6 address or "Neither" if IP is not a correct IP of any type. A valid IPv4 address is an IP in the form "x1.x2.x3.x4" where 0 4: return "Neither" for c in ip: if c.lower() not in '0123456789abcdef': return "Neither" return "IPv6" if len(IP.split("."))-1 == 3: return checkIPv4(IP) elif len(IP.split(":"))-1 ..
Given a non negative integer number num. For every numbers i in the range 0 ≤ i ≤ num calculate the number of 1's in their binary representation and return them as an array. Example 1: Input: 2 Output: [0,1,1] Example 2: Input: 5 Output: [0,1,1,2,1,2] Follow up: It is very easy to come up with a solution with run time O(n*sizeof(integer)). But can you do it in linear time O(n) /possibly in a sin..
Write a program to find the nth super ugly number. Super ugly numbers are positive numbers whose all prime factors are in the given prime list primes of size k. Example: Input: n = 12, primes = [2,7,13,19] Output: 32 Explanation: [1,2,4,7,8,13,14,16,19,26,28,32] is the sequence of the first 12 super ugly numbers given primes = [2,7,13,19] of size 4. Note: 1 is a super ugly number for any given p..
Given two version numbers, version1 and version2, compare them. Version numbers consist of one or more revisions joined by a dot '.'. Each revision consists of digits and may contain leading zeros. Every revision contains at least one character. Revisions are 0-indexed from left to right, with the leftmost revision being revision 0, the next revision being revision 1, and so on. For example 2.5...
Given two integers n and k, return all possible combinations of k numbers out of 1 ... n. You may return the answer in any order. Example 1: Input: n = 4, k = 2 Output: [ [2,4], [3,4], [2,3], [1,2], [1,3], [1,4], ] Example 2: Input: n = 1, k = 1 Output: [[1]] Constraints: 1
Given a collection of numbers, nums, that might contain duplicates, return all possible unique permutations in any order. Example 1: Input: nums = [1,1,2] Output: [[1,1,2], [1,2,1], [2,1,1]] Example 2: Input: nums = [1,2,3] Output: [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] Constraints: 1
Given the head of a linked list, remove the nth node from the end of the list and return its head. Follow up: Could you do this in one pass? Example 1: Input: head = [1,2,3,4,5], n = 2 Output: [1,2,3,5] Example 2: Input: head = [1], n = 1 Output: [] Example 3: Input: head = [1,2], n = 1 Output: [1] Constraints: The number of nodes in the list is sz. 1