일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 캐글
- Baekjoon
- Docker
- github
- Git
- 금융문자분석경진대회
- elasticsearch
- 코로나19
- hackerrank
- 캐치카페
- 자연어처리
- 백준
- SW Expert Academy
- 맥북
- NLP 대회
- Real or Not? NLP with Disaster Tweets
- AI 경진대회
- ubuntu
- programmers
- 편스토랑
- 데이콘
- 우분투
- Kaggle
- 프로그래머스
- 더현대서울 맛집
- leetcode
- PYTHON
- 파이썬
- dacon
- selenium
- Today
- 2,664
- Total
- 1,490,296
목록
반응형
programmers (86)
솜씨좋은장씨

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 탐욕법(Greedy) 단속카메라 입니다! 코딩테스트 연습 - 단속카메라 [[-20,-15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 👨🏻💻 문제 풀이 진출 지점 기준으로 정렬한 뒤 첫 진출 지점에 카메라를 설치하고 현재 카메라를 설치한 지점이 다음 진입지점보다 더 앞쪽이라 겹치지 않을때 다음 진출지점에 카메라를 설치하는 방식으로 문제를 풀이하였습니다. 👨🏻💻 코드 ( Solution ) def solution(routes): answer = 0 camera_position = -30001 routes.sort(key=lambda x: x[1]) for route in routes: if camera_po..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 최솟값 만들기 입니다. 코딩테스트 연습 - 최솟값 만들기 길이가 같은 배열 A, B 두개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱 programmers.co.kr 👨🏻💻 문제 풀이 길이가 같은 두 개의 배열에서 하나씩 꺼낸 값의 곱을 계속 더한 누적 합 중 가장 작은 값을 구하는 문제입니다. 효율성까지 보길래 어려운가....! 했는데 조금만 생각해보면 정말 쉬운 문제였습니다. 가장 작은 값을 만들기 위해서는 하나의 배열 ( A ) 에서는 가장 큰 값 / 또 다른 배열 ( B ) 에서는 가장 작은 값을 꺼내어 곱한 값을 계속 더해..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 탐욕법(Greedy) - 큰 수 만들기 입니다. 코딩테스트 연습 - 큰 수 만들기 programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(number, k): answer = [number[0]] for num in number[1:]: while answer and answer[-1] < num and k > 0: answer.pop() k -= 1 answer.append(num) if k > 0: answer = answer[:-k] return "".join(answer) GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07 1일 1문제 since 2020..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 2019 KAKAO BLIND RECRUITMENT의 오픈채팅방입니다. 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(record_list): answer = [] user_dict = {} records = [] for record in record_list: split_record = record.split() if split_record[0] != "Leave": user_dict[split_r..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 피보나치 수 입니다. 코딩테스트 연습 - 피보나치 수 피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) = programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(n): answer = 0 fibo_num_list = [0, 1] for i in range(n-1): fibo_num_list.append(fibo_num_..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 n^2 배열 자르기 입니다. 코딩테스트 연습 - n^2 배열 자르기 정수 n, left, right가 주어집니다. 다음 과정을 거쳐서 1차원 배열을 만들고자 합니다. n행 n열 크기의 비어있는 2차원 배열을 만듭니다. i = 1, 2, 3, ..., n에 대해서, 다음 과정을 반복합니다. 1행 1열부 programmers.co.kr 👨🏻💻 문제 풀이 위의 그림처럼 특정한 규칙이 적용되어있는 n x n 차원의 배열 ( n^2 배열 ) 의 각행을 떼어서 n x n 길이의 1차원 배열로 만들었을때 주어진 left 부터 right 사이의 값은 무엇인가 찾는 문제입니다. index ( start 1 ) 0 1 2 0 1 2 3 1 2 2 3 2 3 3 3 위와 같..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 2018 KAKAO BLIND RECRUITMENT [1차] 다트 게임 입니다. 코딩테스트 연습 - [1차] 다트 게임 programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(dartResult): temp_list = [] temp = "" idx = -1 for dart in dartResult: if dart == "S": temp_list.append(pow(int(temp), 1)) temp = "" idx += 1 elif dart == "D": temp_list.append(pow(int(temp), 2)) temp = "" idx += 1 elif dart == "T": temp_list.append(po..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 찾아라 프로그래밍 마에스터의 폰켓몬 입니다. 코딩테스트 연습 - 폰켓몬 당신은 폰켓몬을 잡기 위한 오랜 여행 끝에, 홍 박사님의 연구실에 도착했습니다. 홍 박사님은 당신에게 자신의 연구실에 있는 총 N 마리의 폰켓몬 중에서 N/2마리를 가져가도 좋다고 했습니다. programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(nums): answer = 0 max_get_ponketmon = len(nums) // 2 unique_ponketmon = len(set(nums)) if unique_ponketmon >= max_get_ponketmon: answer = max_get_ponketmon else: answer = u..

코딩 1일 1문제! 오늘의 문제는 2019 카카오 개발자 겨울 인턴십 문제였던! 크레인 인형뽑기 게임 입니다. 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 👨🏻💻 문제 풀이 인형이 들어있는 인형뽑기 게임이 있고 인형을 들어올리는 크레인이 움직이는 경로가 주어지고 각 경로에서 뽑은 인형을 하나의 바구니에 담을때 같은 인형끼리 붙을 경우 인형이 터지면서 사라진다고 할때 터져서 없어진 인형의 개수를 구하는 문제입니다. 딱 터져서 없어진다! 라는 것을 보았을 때 스택의 개념을 활용해서 풀면 되겠다! 라는 생각이 들었습니다. 그래서 바구니..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 짝지어 제거하기 입니다. 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 👨🏻💻 문제 풀이 짝지어 제거하기는 baabaa 라는 단어가 있을 때 b aa baa -> bb aa -> aa -> 위와 같이 특정 단어가 주어지면 그 안의 알파벳을 짝지어 없애는 과정을 거쳤을 때 아무것도 남지 않는지 남는지 확인하는 문제입니다. 이 문제는 스택을 활용하여 풀면 쉽습니다. baabaa 의 경우에 앞에서부터 하나씩 꺼내서 현재 스택에 들어있는 값의 마지막 값..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 2022년 카카오 블라인드 채용 코딩테스트 문제였던 주차 요금 계산 입니다. 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 👨🏻💻 문제 풀이 어느 주차장의 입차, 출차 정보와 주차장의 요금표 정보를 입력 받으면 주차장을 이용한 차량들의 주차요금을 계산하는 문제입니다. 입차 출차 시간..

코딩 1일 1문제! 오늘의 문제는 2022 KAKAO BLIND RECRUITMENT 문제 중 1개인 신고 결과 받기! 입니다. 풀기는 풀었으나 신고 건수가 많아지면 효율이 떨어지는 코드여서 추후에 수정하고자 합니다. 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 👨🏻💻 문제 풀이 k번 이상 신고 받은 불량 이용자는 이용 정지가 되며 이용 정지가 되었을 때는 해당 불량 이용자를 신고한 모든 유저에게 불량 이용자 처리결과에 대한 이메일이 전송된다고 할 때 각 유저가 받은 이메일의 개수를 구하는 문제입..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 2018 KAKAO BLIND RECUITMENT 1차 비밀지도 입니다. 코딩테스트 연습 - [1차] 비밀지도 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다 programmers.co.kr 👨🏻💻 문제 풀이 문제를 딱 본 순간 이진수로 변환 한 수들을 비트연산자를 활용하여 계산하고 이를 활용하여 정답을 만들면 되겠다 생각이 들었습니다. 문제에서 설명하는 그림을 보면 맨 오른쪽에 # 이 그려져 있는 부분을 보면 왼쪽 두 그림 속 # 의 위치를 겹친 모습입니다. 그런데 #의 위치는 1의 위치이므로 0과 0일때만 0이고 나머..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 나머지가 1이 되는 수 찾기 입니다. 코딩테스트 연습 - 나머지가 1이 되는 수 찾기 자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다. 제한사항 입 programmers.co.kr 👨🏻💻 문제 풀이 나머지가 1이 되는 수는 1부터 n까지 반복문을 돌면서 n % x 가 1 이되는 가장 첫번째 x를 찾으면됩니다. for x in range(1, n): if n % x == 1: answer = x break 👨🏻💻 코드 ( Solution ) def solution(n): answer = 0 for x in ..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 올바른 괄호 입니다. 코딩테스트 연습 - 올바른 괄호 괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은 programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(s): answer = True mystack = [] for idx, bracket in enumerate(s): if bracket == "(": mystack.append(bracket) else: try: if mystack.pop() == "(": pass except: answe..

코딩 1일 1문제! 즐거운 대체공휴일인 오늘! 오늘의 문제는 프로그래머스의 위클리 챌린지 5주차 문제인 모음사전입니다. 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 👨🏻💻 코드 풀이 이 문제는 모음 ( A, E, I, O, U ) 로 이루어진 A ~ UUUUU 사이의 단어가 몇번째 단어인지를 맞추는 문제입니다. 저는 곱집합을 만들어주는 itertools의 product를 활용하여 문제를 풀었습니다. itertools의 product는 아래의 글을 참고..

코딩 1일 1문제! 오늘의 문제는 프로그래머스 위클리 챌린지 8주차! 최소직사각형 입니다. 코딩테스트 연습 - 8주차 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr 👨🏻💻 코드 풀이 여러 명함의 크기를 알려주면 이 모든 명함들을 담을 수 있는 가장 작은 크기의 명함케이스의 크기를 구하는 문제입니다. 의외로 엄청 쉽게 풀 수 있는 문제입니다. 명함의 가로 세로 길이 중에서 가장 긴 길이로 먼저 명함케이스의 길이를 지정하면 쉽게 풀 수 있는 문제입니다. 먼저 각 명함의 길이들을 앞쪽에 더 긴 길이가 오도록 정렬합니다. [[60, 50], [30..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 월간 코드 챌린시 시즌 3 없는 숫자 더하기 입니다. 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. 제한 programmers.co.kr 👨🏻💻 코드 ( Solution ) def solution(numbers): answer = -1 except_numbers = set(range(0, 10)) - set(numbers) answer = sum(list(except_numbers)) return answer GitHub - SOMJANG/CODI..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 위클리 챌린지 6주차 문제인 복서 정렬하기 문제 입니다. 복서 정렬하기 문제를 파이썬을 활용해 풀이해보았습니다. 코딩테스트 연습 - 6주차 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 👨🏻💻 문제 풀이 복서 정렬하기는 각 선수의 몸무게와 경기 기록을 주었을 때 1. 전체 승률이 높은 복서의 번호가 앞쪽으로 갑니다. 아직 다른 복서랑 붙어본 적이 없는 복서의 승률은 0%로 취급합니다. 2. 승률이 동일한 복서의 번호들 중에서는 자신보다 몸무게가 무거운 ..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 위클리 챌린지 4주차 문제! 직업군 추천하기 입니다. 3주차 문제를 먼저 풀고 왔어야했으나! 저의 실력이 아직.... 4주차를 먼저! 풀어보기로 했습니다. 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr Solution def make_prefer_score_table(languages, preference): prefer_score = {} for language, score in zip(languages, preference): prefer_score[lan..

코딩 1일 1문제! 오늘의 문제는 프로그래머스 2021년 웹 백엔드 개발자 상반기 Dev-Matching 문제 였던 로또의 최고 순위와 최저 순위 입니다. 이번주 로또 당첨을 기원하며! 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr Solution def get_lotto_rank(match_num): rank_dict = {6: 1, 5: 2, 4: 3, 3: 4, 2: 5, 1: 6, 0: 6} return rank_dict[match_num] def sol..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 위클리 챌린지 2주차 문제인 상호 평가 입니다. 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr Solution def get_person_grade(score): grade = "F" if score >= 90: grade = "A" elif 80

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 위클리 챌린지 1주차 문제인 부족한 금액 계산하기 입니다. 드디어 길고 길었던, 2년같이 느껴졌던 2주간의 자가격리가 끝나 오늘부터는 본격적으로 다시 블로그를 운영해보려합니다. 코딩테스트 연습 - 1주차 새로 생긴 놀이기구는 인기가 매우 많아 줄이 끊이질 않습니다. 이 놀이기구의 원래 이용료는 price원 인데, 놀이기구를 N 번 째 이용한다면 원래 이용료의 N배를 받기로 하였습니다. 즉, 처음 이 programmers.co.kr Solution def solution(price, money, count): answer = -1 total_price = 0 for cnt in range(1, count+1): total_price += price * cnt..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 숫자 문자열과 영단어 입니다. 코딩테스트 연습 - 숫자 문자열과 영단어 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자 programmers.co.kr Solution def solution(string): answer = "" word_to_num = { "zero": "0", "one": "1", "two": "2", "three": "3", "four": "4", "five": "5", "six": "6", "seven": "7", "eight": "8", "nine": "9" } temp = "" for char i..

코딩 1일 1문제! 오늘의 문제는 최대공약수와 최소공배수 입니다. 코딩테스트 연습 - 최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 programmers.co.kr Solution from fractions import gcd def solution(n, m): answer = [gcd(n, m), n*m / gcd(n, m)] return answer SOMJANG/CODINGTEST_PRACTICE 1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE dev..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 다음 큰 숫자 입니다. 코딩테스트 연습 - 다음 큰 숫자 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니 programmers.co.kr Solution def solution(n): answer = 0 one_count = bin(n).count("1") for num in range(n+1, 1000001): num_one_count = bin(num).count("1") if one_count == num_one_count: answer = num break return answer Sol..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 구명보트 입니다. 코딩테스트 연습 - 구명보트 무인도에 갇힌 사람들을 구명보트를 이용하여 구출하려고 합니다. 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없고, 무게 제한도 있습니다. 예를 들어, 사람들의 몸무게가 [70kg, 50kg, 80kg, 5 programmers.co.kr Solution def solution(people, limit): answer = 0 people.sort() start, end = 0, len(people) - 1 while start

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 2개 이하로 다른 비트 입니다. 코딩테스트 연습 - 2개 이하로 다른 비트 programmers.co.kr Solution def solution(numbers): answer = [] for number in numbers: if number % 2 == 0: binary_num = list(bin(number)[2:]) binary_num[-1] = "1" else: binary_num = bin(number)[2:] binary_num = "0" + binary_num one_idx = binary_num.rfind("0") binary_num = list(binary_num) binary_num[one_idx] = "1" binary_num[one_..

코딩 1일 1문제! 오늘의 문제는 프로그래머스 약수의 개수와 덧셈 입니다. 코딩테스트 연습 - 약수의 개수와 덧셈 두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주 programmers.co.kr Solution def solution(left, right): answer = 0 for num in range(left, right + 1): operator = 1 divisor_num = len([n for n in range(1, num+1) if num % n == 0]) if divisor_num % 2 == 1: opera..

코딩 1일 1문제! 오늘의 문제는 프로그래머스의 소수찾기 입니다. 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 programmers.co.kr Solution def solution(N): nums = [True] * (N + 1) for i in range(2, len(nums) // 2 + 1): if nums[i]: for j in range(i+i, N + 1, i): nums[j] = False return len([i for i in range(2, N + 1) if nums[i]]) Solution ..