반응형

Contents 175

[알고리즘] 2018 KAKAO BLIND RECRUITMENT - [1차] 뉴스 클러스터링

[알고리즘] 2018 KAKAO BLIND RECRUITMENT - [1차] 뉴스 클러스터링 2018 KAKAO BLIND RECRUITMENT - [1차] 뉴스 클러스터링 문제를 풀며 아름다운 코드를 발견했습니다. 저만 보기 아까워 기록하려합니다. url = https://programmers.co.kr/learn/courses/30/lessons/17677 내가 생각하기에 깔끔한 코드 import re from collections import Counter pattern = re.compile('[a-z][a-z]') def preprocessing(content): result = [] for i in range(0, len(content)-1): two_letter = conten..

[알고리즘] 2020 카카오 인턴십 - 수식 최대화

2020 카카오 인턴십 - 수식 최대화 url = https://programmers.co.kr/learn/courses/30/lessons/67257 문제 푸는데 꽤나 시간이 걸렸다. IDE 가 없는 환경에서 시험봐야 했다면 더 오래 걸렸을 것 같다. 가장 헷갈렸던 부분은 deque 자료구조에서 특정 인덱스 값을 지우는 부분과 그 이후의 인덱스 조작에서 많이 헤맸다... 아직 내공이 많이 부족한가보다. 더 열심히 풀자! 나의 소스코드 from itertools import permutations from collections import deque def solution(expression): answer = [] stack = deque(fill_stack(expression)) operator = ..

[알고리즘] 프로그래머스 2017 팁스타운 - 짝지어 제거하기

프로그래머스 2017 팁스타운 - 짝지어 제거하기 url = https://programmers.co.kr/learn/courses/30/lessons/12973 문제 설명 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 이 과정을 반복해서 문자열을 모두 제거한다면 짝지어 제거하기가 종료됩니다. 문자열 S가 주어졌을 때, 짝지어 제거하기를 성공적으로 수행할 수 있는지 반환하는 함수를 완성해 주세요. 성공적으로 수행할 수 있으면 1을, 아닐 경우 0을 리턴해주면 됩니다. 예를 들어, 문자열 S = baabaa 라면 b aa baa → bb aa → aa → ..

[알고리즘] 프로그래머스 연습문제 - 다음 큰 숫자

프로그래머스 연습문제 - 다음 큰 숫자 url = programmers.co.kr/learn/courses/30/lessons/12911 비교적 간단한게 풀었던 문제이지만, 구글링이 불가능한 코딩 테스트라면 조금 버벅일 수 있을만한 문제였다. 이 문제에서는 bin() 함수를 사용해야 하는데 사용해 본 적이 없어서 조금 난감했을 것 같다. 해당 문제는 자연수 n이 주어졌을 때, n 의 다음 큰 숫자를 구하는 문제이고 조건은 아래와 같다. 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는..

[알고리즘] 2019 카카오 개발자 겨울 인턴십 - 튜플

2019 카카오 개발자 겨울 인턴십 - 튜플 url : https://programmers.co.kr/learn/courses/30/lessons/64065 2019 카카오 개발자 겨울 인턴십 - 튜플 문제를 풀며 익숙하지 않았던 것들에 대해 정리하고자 한다. s = "{{1,2,3},{2,1},{1,2,4,3},{2}}" 라는 문자열이 주어지면, 해당 문자열을 ['1,2,3', '2,1', '1,2,4,3', '2'] 처럼 변경해야 했다. 이 때, 나는 한 번에 숫자를 깔끔하게 나누는 것에 대해 미처 생각하지 못했다. 처음 나의 접근 방식 s = "{{1,2,3},{2,1},{1,2,4,3},{2}}" 문자열을 나눌 때 s[1:-1]을 통해 양 사이드의 괄호를 제거했다. 그리고 나서 스택을 만들어 괄호..

[Hyperledger Fabric] "Error reading from stream: rpc error: code = Canceled desc = context canceled" 오류

두 개의 노드를 가지고 하이퍼레저 패브릭 네트워크를 구축했다. 노드 당 하나의 조직이 위치하고, 조직 당 피어 2개가 올라간다. cryptographic material, 채널 생성, 피어 조인, 체인코드 설치 및 인스턴스화 등의 작업은 아무런 문제 없이 진행했다. 또한 query, invoke 등의 함수도 정상적으로 동작했고 각 노드에서의 결과도 동일하다. 그런데, 다음과 같은 오류가 오더러(solo)에서 발생했다. 2020-08-24 17:28:08.135 UTC [orderer.common.broadcast] Handle -> WARN 031 Error reading from 10.20.30.11:33198: rpc error: code = Canceled desc = context canceled..

[Hyperledger Fabric] Change byfn to basic network with fabcar 정리

처음 하이퍼레저 패브릭을 시작할 때, fabric/fabric-samples의 byfn.sh를 사용하여 네트워크를 구축하였다. 여기에 쓰이는 체인코드는 chaincode_example02인데, 그저 A, B 사이에 돈을 송금하는 간단한 코드이다. fabric-sdk-py를 사용하여 트랜잭션을 생성하였고, 실험 또한 이 환경에서 진행되었다. 그러나 chaincode_example02 체인코드는 너무 간단하여 좀 더 범용적인 체인코드를 써야겠다고 생각했고, 여러 체인코드들 중 선택한 것이 바로 fabcar이다. fabcar에는 다음과 같은 함수들이 있다. initLedger queryCar queryAllCars createCar changeCarOwner fabcar 체인코드를 사용하려면 기존 설정 파일에..

[개발관련도서] 조엘 온 소프트웨어(3/3)

3부 조엘 따라하기: 두서 없는 생각, 하지만 놓쳐서는 안 될 이야기 30장 - 이 나라에서는 개가 무슨 일을 하죠? 자기 개밥을 먹는다 '자기 개밥을 먹는다'는 말은 컴퓨터 분야에서 쓰는 표현으로, 자기회사 제품을 실제로 사용해 보는 과정을 말한다. 저자는 출시 전회사의 제품을 직접 사용해봤는데, 버그 몇 개 때문에 작업 진행이 불가했다. 꼼꼼하게 테스트 과정을 거쳤지만, 제품 기능을 수행하지 못하게 하는 치명적인 버그는 다 고치지 못한 것이다. 고객 입장에서 제품을 실행해보니 버그가 바로 보였다. 이후 팀을 소집해서 모두 자사의 제품을 써서 사이트를 구축해 보자고 제안했다. 이게 바로 '자기 개밥 먹기'이다. 다들 자기 개밥 먹기를 해봐야 한다. 투자자금을 모으려고 전국을 누비는 대신, 고객 의견에 ..

[개발관련도서] 조엘 온 소프트웨어(2/3)

2부 개발자 다루기 20장 - 인터뷰를 위한 게릴라 가이드 대체로 직원을 고용하는 방식 이력서 - 꼼꼼하지 못한 이력서는 꼼꼼하지 못한 업무처리로 이어진다라고 생각 전화 인터뷰 - 프로그래밍 문제 하나로 30분 정도 이야기를 나누는데, 같은 내용을 반복해서 설명하거나 독창적인 생각이 없는 경우 탈락시킴 대면 인터뷰 - "기본적인 자질을 갖췄는가", "(재미 삼아) 토이 프로젝트를 하는가" 등의 질문을 통해 똑똑한 사람을 가려냄 이런 사람을 뽑아라 똑똑하다 -> 같은 설명을 여러 번 반복할 필요가 없다면 좋은 신호 업무를 성실하게 완수한다. 요즘은 어떤 기술이든 이삼 년이면 낡어버린다. 지금 당장 JDBC와 MySQL 데이터베이스를 연동할 줄 아는 사람보다는 새 기술을 배울만한 자질이 있는 사람을 고용하는..

[개발관련도서] 조엘 온 소프트웨어(1/3)

1부 비트와 바이트: 프로그래밍 실전 2장 - 기본으로 돌아가기 사람들이 저지르는 가장 큰 실수 중 몇 가지는 최저층에서 벌어지는 몇 가지 단순한 동작원리를 자세히 알지 못하거나 아예 잘못 알고 있기 때문에 생긴다. C언어의 strcat 함수와 러시아 페인트공 알고리즘을 통해 기존의 라이브러리의 성능이 좋지 않을 수도 있음을 나타냈고 더 나은 해결책을 제시했다. 또한 작성한 코드가 실제 메모리 상에서 어떻게 어떻게 동작하는지를 malloc 함수를 통해 설명했다. 저자는 strcat과 malloc이 실제로 어떻게 움직이는지를 보며 밑바닥이 어떻게 작동하는가를 알아야 한다고 말한다. 이 말인즉슨, '여러 기술을 다룰 때 밑바닥을 항상 염두하여 최상위 전략과 아키텍처 결정에 활용하라'이다. 요즘 입문자가 시작..

반응형