반응형

프로그래머스 54

프로그래머스 코딩테스트 연습 Level 1 클리어 후기 (모든 문제 코드)

프로그래머스 코딩 테스트 풀이 코드 gogoma-code/programmers-codding-test (github.com) 현재는 Level1 JAVA 코드만 업로드 되어 있지만 더 높은 레벨, 다양한 언어를 추가할 예정입니다. 이제 Level 1에는 안 푼 문제는 없어요. 대부분 5분 내에는 풀었고, 조금 더 걸리는 문제들도 있었지만 심심할 때 하나씩 풀기 좋았어요. 처음에 알고리즘을 풀기 시작한 것은 java를 까먹지 않으려고 시작했어요. 최근에 java를 사용하지 않으면서 이대로 두면 언어도 많이 까먹을 것 같고, 또 최신 문법의 활용도 못 따라갈 것 같아서, 알고리즘 풀면서 언어에도 익숙해지려고 시작했어요. 실제로 내가 푼 코드와 다른 사람들의 코드를 비교하면서 문법의 활용성, 문제 해결의 접근..

Study 2022.07.09

프로그래머스 - 로또의 최고 순위와 최저 순위 java :: 2021 Dev-Matching: 웹 백엔드 개발자(상반기)

77484 https://school.programmers.co.kr/learn/courses/30/lessons/77484?language=java#fn1 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 📌로또의 수는 45개이고, 각 배열(lottos, win_nums)의 길이는 6개로 고정입니다. 📌알아야 할 것은 "몇 개를 맞췄느냐?", "몇 개가 낙서되었느냐?" 입니다. 위 두 개의 핵심으로 생각해보면 많이 맞춘 경우는 낙서된 수가 모두 당첨 번호라고 가정하고 [맞춘 개수 + 낙서된 수] 많이 맞추지 못한 경우는 낙서된 수가 모두 꽝이라고 가정..

Algorithm/Java 2022.07.09

프로그래머스 - 신고 결과 받기 java :: 2022 KAKAO BLIND RECRUITMENT

92334 https://school.programmers.co.kr/learn/courses/30/lessons/92334?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 저는 신고자의 기준이 아닌 신고 당하는 사람을 기준으로 코드를 작성했습니다. 📌결과는 신고자의 index의 값을 구해야 합니다. 📌신고자는 같은 유저를 2번 이상 신고해도 1번으로만 처리됩니다. (중복 신고가 불가능합니다.) 중복이 불가능하다는 뜻은 Set이 활용되기 가장 좋은 문제라는 뜻이기도 합니다. 📝풀이1 public int[] solution(St..

Algorithm/Java 2022.07.09

프로그래머스 - 숫자 문자열과 영단어 java :: 2021 카카오 채용연계형 인턴십

81301번 코딩테스트 연습 - 숫자 문자열과 영단어 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 📌각 숫자에 매칭되는 알파벳이 있다. 📌영단어의 위치는 랜덤이며 2번이상 연속으로 영단어가 나올 수도 있다. 📝풀이1 public int solution(String s) { List alphabet = Arrays.asList( "zero","one","two","three","four","five","six","seven","eight","nine"); StringBuilder answer ..

Algorithm/Java 2022.07.08

프로그래머스 - 키패드 누르기 java :: 2020 카카오 인턴십

67256번 코딩테스트 연습 - 키패드 누르기 | 프로그래머스 스쿨 (programmers.co.kr) 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 📌키패드의 위치 중 left, mid, right를 기준으로 행의 위치를 알고 있으면 답을 구하기 쉬워요. 예를 들어 키패드를 그대로 행의 인덱스 값을 부여하면 아래와 같습니다. 0 0 0 1 1 1 2 2 2 3 3 3 📌거리 계산이 핵심인데, 거리 계산을 하기 위해서는 손가락의 위치를 먼저 알아야 해요. 그래서 3개의 핵심이 있는 것 같아요. 🎈누르려는 엄지의 방향 (L / R) 🎈누르려는 키의 위..

Algorithm/Java 2022.07.08

프로그래머스 - 신규 아이디 추천 java :: 2021 KAKAO BLIND RECRUITMENT :: 72410

문제 링크 코딩테스트 연습 - 신규 아이디 추천 | 프로그래머스 스쿨 (programmers.co.kr) 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. 5단계 new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다. 6단계 new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다. 만약 제거 후 마침표(.)가 new_id의 끝에 위치한..

Algorithm/Java 2022.07.08

프로그래머스 - 크레인 인형뽑기 게임 java :: 2019 카카오 개발자 겨울 인턴십 :: 64061

문제 링크 코딩테스트 연습 - 크레인 인형뽑기 게임 | 프로그래머스 스쿨 (programmers.co.kr) 문제 이해하기 2차원배열 board의 값이 0이면 해당 자리는 공백으로 봐야 합니다. 각 인형의 고유의 숫자로 표현되며, 인형을 뽑았으면 해당 인덱스의 값을 0으로 바꿔 공백으로 표현해야 합니다. 특정 공간에 넣었다 뺐다를 반복할 때 가장 좋은 방법은 Stack이라고 생각합니다. 문제 풀이 코드-1 public int solution(int[][] board, int[] moves) { int answer = 0, doll = 0; Stack stack = new Stack(); for(int move : moves) { move--; for(int i=0; i 0) { board[i][move]..

Algorithm/Java 2022.07.07

프로그래머스 - 없는 숫자 더하기 java :: 월간 코드 챌린지 시즌3

86051번 https://school.programmers.co.kr/learn/courses/30/lessons/86051?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 📌numbers의 요소는 중복되지 않는다. 📌numbers에 1~9까지 모든 요소가 있다고 가정할 때 그 요소의 합은 45이다. 이 두 가지 핵심을 이용하면 쉽게 풀 수 있습니다. 📝풀이1 public int solution2(int[] numbers) { int answer = 45; for(int num : numbers) { answer -= num..

Algorithm/Java 2022.07.06

프로그래머스 - 음양 더하기 java :: 월간 코드 챌린지 시즌2

76501번 https://school.programmers.co.kr/learn/courses/30/lessons/76501?language=java 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 📝풀이1 public int solution(int[] absolutes, boolean[] signs) { int answer = 0; for(int i=0; i

Algorithm/Java 2022.07.06
반응형