본문 바로가기

프로그래머스 코딩테스트 연습 Lv1

(21)
Lv2 - 오픈채팅방 [문제설명] - 들어오고 나갈때 "[닉네임]님이 들어왔습니다." / "[닉네임]님이 나갔습니다." 라고 출력된다. - 닉변하려면 채팅방 나간후 새로운 닉네임으로 다시 들어가거나 채팅방에서 닉네임을 변경하는 방법 두개가 있다. - 닉변하면 기존 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경됨. - 중복닉네임 허용됨. - 채팅방에 오고가거나 닉네임을 변경한 기록이 담긴 record가 매개변수로 주어질 때, 최종적으로 방을 개설한 사람이 보게되는 메세지를 문자열 배열형태로 리턴. - 모든 유저는 id로 구분. "Enter [id] [name]" "Leave [id] [name]" "Change [id] [name]" 세가지 경우의 수 있다. - 각 단어는 공백으로 구분되어 있으며, 알파벳 대문자, 소문자..
프로그래머스 코딩테스트 연습 - 모든문제 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 ..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 포켓몬 ] [문제 설명] - N 마리 포켓몬중 반을 가져가도 됨. - 번호로 구분하는데 같은 종류의 포켓몬은 같은 번호를 가지고 있다. - 최대한 다양한 종류의 포켓몬을 가지는 조합을 짜고 그 종류 갯수를 리턴. [입출력 예] [내 풀이] -이거 앞에 조합 짰던 문제가 있었는데 그거랑 그냥 비슷 한듯! 오히려 더 쉬운가? 그때 배웠던 itertools를 이용해 봅시다. 멋들어지게 풀고 "너무 쉬우니 설명은 생략 하겠습니다." 라고 하려했는데 ㅋㅋ아 시간초과가 너무 많다. 이렇게 하면 안되나보다 어케 하는거지? 아 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 그냥 낚시 문제였음.. 조합이고뭐고 다 필요없는 ㅠㅠㅠ 문제풀이 했던 순서 1. 아! 애초에 중복을 제거 해놓고 풀면 되는구나. 2. 첫 배열/2 보다 중복제거한게..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 키패드 누르기 ] [문제 설명] - 상하좌우 4가지 방향으로만 이동 가능. 이동 가능 거리는 1 - 1 4 7 을 입력할때는 왼손 엄지, 3 6 9 는 오른 엄지 - 2580 입력할때는 키패드에서 가까운 손. 거리 같으면 오른손잡이는 오른손 왼손잡이는 왼손 - 순서대로 누른 번호가 담긴 배열 numbers[], 왼손잡이 인지 오른손 잡이인지 나타내는 문자열 hand[] - 각 번호를 누른 엄지 손가락이 왼손인지 오른손인 지를 나타내는 문자열을 리턴하는 함수 작성. [제한사항] - numbers 배열크기는 1이상 1,000 이하 - numbers 배열 원소 값은 0 이상 9 이하 - hand[]는 "left" 또는 "right" 이다. - 왼손 엄지는 L, 오른손 엄지는 R 리턴. [입출력 예] [내 풀이] - 편의를 위해..
프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 신규 아이디 추천 ] [문제 설명] - 카카오에 새로 가입하는 유저들이 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발. - 아이디 길이는 3 이상 15이하임. - 알파벳(소문자만), 숫자, '-' , '_' , '.' 만 사용할 수 있음. (이때 마침표는 처음과 끝에 사용 불가하고 연속사용 불가.) - 총 7단계로 순차적인 처리과정이 있음. 1) new_id의 모든 대문자를 소문자로 치환. 2) 사용할수없는 문자들 제거 3) 마침표 2이상이면 하나로 치환 4) 마침표가 처음이나 끝이면 제거 5) 아이디가 비어있으면 "a" 넣음. 6) 15자 초과면 뒤에 제거함. 마침표만 남으면 마침표도 제거함 7) 2이하의 길이면 마지막글자를 반복해서 3이 되게 만..