코딩테스트 164

[프로그래머스]단어 변환 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 3 문제치고 흔한 dfs 문제라고 생각이 들었음 알파벳이 바뀌는 횟수를 세는 부분이 포인트인 것 같음 ! 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - 깊이/너비 우선 탐색(DFS/BFS) - 단어 변환 // https://school.programmers.co.kr/learn/courses/30/lessons/43163 package PROGRAMMERS.level3;..

[프로그래머스]같은 숫자는 싫어 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12906 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 레벨 1 문제임 Stack 활용! Stack 말고 ArrayList 써도 상관 없을듯??? 코드 // 코딩테스트 연습 - 스택/큐 - 같은 숫자는 싫어 // https://programmers.co.kr/learn/courses/30/lessons/12906 package PROGRAMMERS.level1; import java.util.Arrays; import java.util.St..

[프로그래머스]최소직사각형 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 레벨 1 문제임 애초에 처음부터 긴쪽을 가로, 짧은쪽을 세로로 생각하고 풀면 됨 ! 코드 // 코딩테스트 연습 - 완전탐색 - 최소직사각형 // https://school.programmers.co.kr/learn/courses/30/lessons/86491 package PROGRAMMERS.level1; public class Num86491_최소직사각형 { private stati..

[프로그래머스]성격 유형 검사하기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/118666 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 레벨 1이라 그런지 어렵지 않은 문제였음 문제를 오랜만에 풀어서 무슨 함수가 있고 하는걸 까먹었음.... ㅎ 그래서 Character 형 ArrayList에다가 'R', 'T', 'C' , ... 얘네들을 다 추가해서 .indexOf() 함수를 사용했는데 그럴 필요없이 그냥 "RTCFJMAN" 문자열에다가 .indexOf() 함수써도 되는거였음 암튼 그렇게 풀고 풀이를 더 찾아봤는데 ..

[프로그래머스]게임 맵 최단거리 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 흔한 BFS 문제인 듯해서 BFS로 풀었음 취향에 따라 큐에 위치를 저장한 배열을 넣느냐, 아니면 클래스를 넣느냐 정해서 풀면 될 듯 함! 시작점에서 도착점까지 여러가지 길이 있을 수 있겠지만, 가장 최단 거리를 반환해야 함! 근데 BFS로 풀었기 때문에 어차피 가장 빨리 도착하는 길이 가장 최단 거리임! 클래스 사용 풀이와 배열 사용 풀이 둘 다 있음 자세한건 주석으로 ! 코드 클래스 ..

[프로그래머스]방문 길이 - Java (3차원 배열, 방향 벡터 사용 풀이)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 앞에 올렸던 글과 같은 문제지만 다른 풀이임 이 방법이 더 빠르고 효율이 좋아서 이 풀이도 올리게 됐음 ㅎㅎㅎ visited 배열을 2차원이 아닌 2차원 + 4방향. 즉, 3차원 배열로 만들어서 방문 체크를 해주는 방법임 방향 벡터 dr[]과 dc[]의 방향을 정할 때 시계 방향이나 반시계 방향으로 정해줘야 방향을 정반대로 바꿀 때 이렇게 밑에 처럼 해줄 수 있기 때문에 편함 d = (..

[프로그래머스]방문 길이 - Java (Set 사용 풀이)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/49994 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 10X10의 좌표평면 위에서 게임이 진행되므로 게임 캐릭터가 [11][11] 크기의 배열 위에서 움직인다고 생각하고 문제를 풀었음 처음에는 방문한 좌표를 Set에 넣어서 중복을 제거해준 후 마지막에 Set의 크기를 답으로 정했는데, 지나간 길과 방문한 좌표 위치는 다를 수 밖에 없어서 예제 1번이 답이 다르게 나왔음 ! 그래서 Set에 "처음 위치 + 이동한 위치"를 넣었으나 테케 8번..

[프로그래머스]소수 찾기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 완전 탐색 문제임. 나는 dfs로 풀었음 dfs 들어가기 전에 visited[] 배열 체크해주고 나오면 해제해주기 ! 문자열도 dfs 들어가기 전에 추가 해주고 나오면 빼주기 ! 나 같은 경우에는 011과 11이 같은 숫자라 중복을 없애주기 위해서 HashSet을 이용하였음 ! 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - 완전탐색 - 소수 찾기 // https://school.p..

[프로그래머스]쿼드압축 후 개수 세기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68936 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 분할 정복의 아주 대표적인 문제임! 백준에도 엄청 비슷하거나 완전 똑같은 문제가 있었던 걸로 기억하는데 맞을걸??? 암튼 지금 범위의 배열을 압축할 수 있는지 없는지 판단하는 check() 함수 - x좌표, y좌표, 현재 단계의 배열 length를 이용해서 검사 check()를 통과했으면 압축할 수 있다는 뜻이므로 return, 그렇지 않으면 4분할해서 다시 재귀로 검사!(마찬가지로 x..

[프로그래머스]방금 그 곡 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17683 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 String.replace() 메서드 사용 - A#과 A, C#과 C 등을 구별하기 위해 A#을 다른 문자열로 교체해야 함! 음악 재생 시간(분) 계산 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - 방금그곡 // https://programmers.co.kr/learn/courses/30/lessons/17683 package..

[프로그래머스]H-Index - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42747 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 처음엔 주어진 배열을 오름차순으로 정렬을 한 후에 이중 for문을 돌면서 h보다 높으면 count를 하나씩 해주는 방식으로 풀었는데, 그렇게 하면 정렬을 할 필요도 없이 그냥 완전 탐색을 하는 느낌?? 그래서 틀렸음 처음엔 근데 정렬을 제대로 이용한 풀이는 반복문을 한번만 돌면서 h-index를 뽑아낼 수가 있었음 정렬을 한 후에 h를 1씩 감소시키면서 배열의 값과 비교해나가면 h보다 ..

[프로그래머스]짝지어 제거하기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12973 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 반복문 안에서 문자 하나하나 앞뒤를 비교해가면서 문제를 풀 수도 있지만 자료구조를 잘 활용하면 반복문으로 한번 더 안감싸고 더 쉽게 풀 수 있음 !!! 여기서 말한 자료구조는 Stack임 ! Stack을 이용하면 반복문을 여러번 돌 필요가 없이, Stack에 데이터를 넣을 때마다 비교를 통해서 문자열을 짝지어서 제거할지 안할지 정할 수 있음 코드를 보면 무슨 말인지 알 수 있을거임 ! ..

[프로그래머스]위장 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 어디서 풀어본 문제 같다 싶었는데,,, https://seokmimmmmmmmm.tistory.com/138 [백준]9375번 패션왕 신해빈 - Java 문제 https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 첫 번째 테스트 케이스는 headgear에 해당하는 의상이 hat, turban이며 eyewear에 해당하는 의상이 sunglasses이므로 (hat..

[프로그래머스]신규 아이디 추천 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 풀이 쉬운 문제임 그냥 문제에서 하라는 대로 하면 됨! 문자열 다루기에 익숙해지고 싶다면 좋은 문제일 것 같음! subString(), toLowerCase(), replace(), valueOf(), contains() 등의 문자열 관련 메서드를 알아두자! 자세한건 주석으로! 코드 // 코딩 테스트 연습 - 2021 KAKAO BLIND RECRU..

[프로그래머스]메뉴 리뉴얼 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 풀이 https://www.youtube.com/watch?v=Jb34jY91450 못 풀어서 이 영상을 참고해서 풀었음 ㅠㅠ 다음에 한번 더 풀어봐야 겠음 ! combination을 해야함 combination하기 전에 정렬 필수 자세한건 주석으로! 코드 // 코딩테스트 연습 - 2021 KAKAO BLIND RECRUITMENT - 메뉴 리뉴얼 // ht..

[프로그래머스]다리를 지나는 트럭 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/42583 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈 programmers.co.kr 풀이 트럭의 무게와 트럭이 다리 위에 올라간 후 경과한 시간(초)를 멤버 변수로 갖는Truck이라는 클래스를 만들고, Queue bridge = new LinkedList(); Queue trucks = new LinkedList(); Truck 객체를 갖는 큐를 2개 만들어서 필요한 애들을 꺼내서 쓰고 비교하고 암튼 그렇게 하려..

[프로그래머스]오픈채팅방 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 풀이 HashMap을 사용해서 풀었음! 처음 채팅방에 들어오는 애는 put으로 추가 닉네임 바꾸는 애는 put으로 바꾸기 Enter랑 Leave인 애들 아이디 ArrayList에 저장해 놨다가 아이디 꺼내서 그 아이디에 맞는 닉네임 HashMap에서 찾아서 닉네임 반환해주기! 자세한건 주석으로! 코드 // 코딩테스트 연습 - 2019 KAKAO BLIND ..

[프로그래머스]카카오프렌즈 컬러링북 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/1829 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 풀이 백준으로 많이 풀어본 유형이긴 한데 별 생각없이 귀찮은 변수나 배열 등을 걍 다 static으로 때려박아서 결코 좋은 풀이는 아닌 것 같다 ,,, ㅎㅎㅎ 그리고 다 풀고 테케까지 다 맞았는데 틀리다고 나와서 질문하기 게시판 보니까 static 애들은 solution() 함수 안에서 초기화 해줘야 한다고 하더라??? 왜 그런지는 모름 암튼 그렇다고 함 ㅋㅋ..

[프로그래머스]뉴스 클러스터링 - Java

문제 https://programmers.co.kr/learn/courses/30/lessons/17677 코딩테스트 연습 - [1차] 뉴스 클러스터링 뉴스 클러스터링 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브 programmers.co.kr 풀이 처음에 집합, 그니까 HashSet으로 문제를 풀려고 했는데 HashSet은 중복을 허용하지 않기 때문에 {aa, aa, aa}인 집합이 {aa}가 되어 버린다. 그래서 합집합, 교집합을 구하는데에 불편하다고 생각되어서 중간에 그냥 ArrayList로 바꿔서 풀었다. 처음에 toLowerCase()나 toUpperCase()로 문..