본문 바로가기

분류 전체보기

(51)
Lv1 - 로또의 최고 순위와 최저 순위 [문제 설명] - 1부터 45까지의 숫자 중 6개를 찍는다. - 로또는 6/5/4/3/2/그외 개를 맞추면 1/2/3/4/5/6(낙) 등이다. - 6개의 당첨 번호중 낙서 돼서 못보는 숫자를 0 으로 표기하고 당첨될 최고 순위 번호와 최저 순위 번호 찾아라. - 순서 상관 없음. - 본인이 소유한 로또 번호를 담은 배열 Lottos - 당첨 번호가 담긴 배열 win_nums - 최고순위와 최저 순위를 차례대로 리턴하는 solution을 만들어라. [내 풀이] - 우선 당첨 확정된 번호를 반복문 돌려서 찾고 (최저로 리턴) - 0개수만큼 맞았다고 가정하고 최고로 리턴 하면 될듯. - 처음에 틀렸길래 왜그런가 봤더니 단순히 맞춘최대갯수, 맞춘최소갯수를 리턴 하고 있었다. 그래서 사전형태로 이를 보완하도록 만..
Lv2 - 기능개발 [문제설명] - 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses ( 100개 이하) - 작업의 개발 속도가 적힌 정수 배열 speeds ( 100개 이하) - 각 배포마다 몇 개의 기능이 배포되는지를 return 하는 solution 함수를 완성해라. - 작업 진도 100 미만의 자연수, 작업 속도는 100 이하의 자연수. - 배포는 하루1회 하루의 끝에. ( 진도율이 95%고 개발 속도가 4%면 배포는 2일 뒤에 이루어짐.) [내 풀이] - zip 으로 묶어서 speeds 요소에 1씩 증가시키면서 곱해가지고 (100 - progresses) 보다 커질때를 리턴하면 될거같은데. 라고 생각했지만 제한이 최대 값을 기준으로 되어 있네. 다 마무리되면 대기 했다가 7일째에 2개..
Lv2 - 오픈채팅방 [문제설명] - 들어오고 나갈때 "[닉네임]님이 들어왔습니다." / "[닉네임]님이 나갔습니다." 라고 출력된다. - 닉변하려면 채팅방 나간후 새로운 닉네임으로 다시 들어가거나 채팅방에서 닉네임을 변경하는 방법 두개가 있다. - 닉변하면 기존 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경됨. - 중복닉네임 허용됨. - 채팅방에 오고가거나 닉네임을 변경한 기록이 담긴 record가 매개변수로 주어질 때, 최종적으로 방을 개설한 사람이 보게되는 메세지를 문자열 배열형태로 리턴. - 모든 유저는 id로 구분. "Enter [id] [name]" "Leave [id] [name]" "Change [id] [name]" 세가지 경우의 수 있다. - 각 단어는 공백으로 구분되어 있으며, 알파벳 대문자, 소문자..
HashCash (해시캐시) - 2008년 비트코인이 처음 개발되면서 사용한 PoW 시스템. 비트코인은 이를 이용해 채굴 알고리즘을 만들었다. - 스팸 메일 퇴치를 위해 가격 책정 기능으로 알려진 프로토콜을 도입해 사용한것이 시작이다. - 사용자가 적당히 어렵지만 다루기 힘든 계산기능(컴퓨터 연산 기능)을 사용해 특정한 값을 찾는 작업을 요구하는것. ( 지금 대부분의 채굴 시스템에서 채택하는 방식) - SHA-1을 사용해 메일이 스팸인지 아닌지 확인해는 스탬프같은 역할을 한다. 메일 발송하자 POW를 수행해야만 해시캐시 스탬프를 받을 수 있도록 했다. 메일을 보내려면 어느정도의 연산 작업을 발송자 컴터가 수행해야 한다. 따라서 이 기술을 이용하면 쓸데 없이 스팸 메일을 보내기 위해 시간과 돈을 써야 하므로 스팸이 줄어들 것으로 본것..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 숫자 문자열과 영단어] [문제 설명] - 숫자를 일부 영단어로 바꾼 카드를 원래 숫자로 바꾸기. - 문자열 S 가 주어졌을때 영단어를 숫자로 리턴하는 함수를 짜시오. [제한사항] - 1
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ K번째수 ] [문제 설명] - 배열의 i~ j 까지 짜른거에서 k번째 수 찾기. - 짜르고 소트하고 k번째꺼 리턴하는 함수 짜기. - array[]랑 i j k가 담긴 commands[] 가 2차원 배열로 주어진다. [제한사항] - array의 길이는 1 이상 100 이하. - array의 각 원소는 1 이상 100 이하 - commands의 길이는 1 이상 50 이하 - commands의 각 원소는 길이가 3. [입출력 예] [내풀이] 1. 뽑는다. 2. sort한다. 3. k 번째를 찾는다. [내공부] 과연 공부할게 있을까 싶었는데 역시 있구나 한줄짜리가 ㅋㅋ 아.. [map] - list(map(함수, 리스트)) 방식으로 쓰는거임 (tuple도 된다.) 위에서 있는거로 보면 함수는 lambda x: ~ 고, 리..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 크레인 인형뽑기 게임] [문제설명] - 게임 화면은 1x1크기의 칸으로 구성된 NxN크기의 정사각형 격자임. - 위쪽엔 크레인 옆엔 바구니가 있음. - 인형은 격자의 아래부터 차곡차곡 쌓여있음. - 집어올린 인형은 바구니의 아래부터 차곡차곡 쌓임. - 같은 모양의 인형이 바구니에 쌓이면 터짐. - 바구니의 크기는 모든 인형의 크기만큼임. - 격자의 상태가 담긴 2차원 배열 board[] - 크레인을 작동시킨 위치가 담긴 배열 moves[]가 매개변수로 주어짐. - 크레인을 모두 작동시킨후 매개변수로 주어질 때, 크레인을 모두 작동시킨 후 터트려서 사라진 인형의 개수를 return. [제한사항] - board 배열은 2차원 배열로 5이상 30이하임. - board각 칸에 0이상 100이하의 정수가 담겨있음. 숫자는 인형의 종류를..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 음양더하기 ] [문제설명] - 어떤 정수들이 있음. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes[]. - 이 정수들의 부호를 차례대로 담은 boolean 배열 signs[] 가 있다. - 실제 정수들의 합을 구해 return [제한사항] - 길이 1이상 1000이하. - absolutes[]와 signs[]의 길이는 같음.(당연;;) [입출력 예] [내풀이] - 두개의 배열이 나오고 이 둘이 관련이 있으니까 zip을 한번 써보자! - zip을 이용해서 signs가 true면 더하고 false면 빼는 반복문을 구현 해보자. 처음으로 1트만에 성공 ㅠ 고맙다!! (True, False 소문자로 잘못써서 사실 한번 수정함) [공부] - 아 이게 if문이 어차피 True False로 구성 되고 signs ..