Level2 29

[프로그래머스]할인 행사 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/131127 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level2 문제 1. 자료구조를 잘 정해서 풀어야 할 것 같음 2. 로직을 반복할 때 다시 자료구조를 잘 초기화 시켜줘야 함 나같은 경우에는 Map을 사용해서 풀었음 그리고 .clone() 함수를 사용해서 초기화 시켜줬음 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - 연습문제 - 할인 행사 // https://school.programmers.co.kr/learn/courses..

[프로그래머스]전력망을 둘로 나누기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level2 문제임 그래프 문제를 잘 해결하지 못하는 편이라 겁먹고 시작했지만 풀었다 그래도 ㅎㅎㅎ 내 생각에 포인트는 1. 그래프를 어떤 자료구조로 표현할 것인가 2. 전력망이 끊긴 것을 어떻게 표현할 것인가 3. 전력망을 끊은 후 각각의 전력망에서의 송전탑의 개수를 어떻게 셀 것인가 인 것 같다 1번의 경우, 처음엔 ArrayList 구조로 했는데 get(), indexOf(), r..

[프로그래머스][1차]캐시 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/17680 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 걍 보자마자 큐가 생각나서 한 10분 컷일 줄 알았는데 풀어보니까 의외로 생각할게 하나둘씩 더 있었음 ㅎㅎㅎㅎ 캐시에 있는 도시를 검색하면 그 캐시에 검색된 도시명이 제일 최근으로 올라와야됨! 그러려면 중간에 있는 도시를 삭제하고 다시 새로 추가해주면 되는데, 큐를 사용하면 중간에 있는 도시를 삭제하지 못하기 때문에 ArrayList를 사용했음 캐시의 크기가 0인 경우는 따로 예외로 두..

[프로그래머스]이진 변환 반복하기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/70129 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 쉬운 문제임 근데 보니까 전에도 풀었더라고 ㅎㅎ 문제 잘 읽고 그대로 풀면 됨 다 풀고 전에 풀었던 코드 보니까 s = s.replace("0", ""); 이렇게 문자열 함수 사용했던데 이렇게 하는게 시간도 더 빠르고 코드 길이도 짧을 듯함 ! 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - 월간 코드 챌린지 시즌1 - 이진 변환 반복하기 // https://programmers.c..

[프로그래머스]N개의 최소공배수 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 쉬운 문제임 다른 사람보니까 유클리드 호제법으로도 풀었던데 나는 다른 방법으로 풀었음 ! 배열을 정렬해서 가장 큰 수를 뽑아준 다음에 걔를 기준으로 배열을 돌면서 모두의 최소공배수가 맞는지 확인했음! 그리고 그 뽑아준 애를 1배, 2배, 3배, ... 하면서 모두의 최소공배수를 구할 때까지 숫자를 증가시켜줌 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - 연습문제 - N개의 최소공배..

[프로그래머스]JadenCase 문자열 만들기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12951 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 엄청 쉬운 문제인 줄 알았는데 처음에 런타임에러로 틀렸음 ㅠㅠㅠ private static class Solution { private String solution(String s) { StringBuilder sb = new StringBuilder(); String[] strArr = s.split(" "); for (int i = 0 ; i < strArr.length ; i++)..

[프로그래머스]최댓값과 최솟값 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12939 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 쉬운 문제인데 왜 Level 2??? 문자열 s를 정수형 배열에 저장하는 방법만 알면 아주 쉬울 듯??? 코드 // 코딩테스트 연습 - 연습문제 - 최댓값과 최솟값 // https://school.programmers.co.kr/learn/courses/30/lessons/12939 package PROGRAMMERS.level2; import java.util.Arrays; publi..

[프로그래머스]게임 맵 최단거리 - 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/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() 함수 안에서 초기화 해줘야 한다고 하더라??? 왜 그런지는 모름 암튼 그렇다고 함 ㅋㅋ..