자바 136

[프로그래머스]예산 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12982 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 그리디하게 생각하면 쉽게 풀 수 있을거임 ! 정렬해서 신청한 금액이 적은 부서부터 지원해주면 됨 주석은 뭐... 달게 없어서 그대로 올립니당 코드 // 코딩테스트 연습 - Summer/Winter Coding(~2018) - 예산 // https://school.programmers.co.kr/learn/courses/30/lessons/12982 package PR..

[프로그래머스]3진법 뒤집기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제이고 쉽게 풀었음. 그래서 안 올리려고 했는데, 다른 풀이들을 찾아보다가 완전 처음 알게된 사실이 있어서 글을 씁니당 ㅎㅎㅎ 일단 풀이는 %연산이랑 /연산을 잘 활용해서 3진법을 잘 만들고 sb.reverse()로 뒤집거나 뭐 등등 뒤집어서 다시 3진법으로 만들면 됨 ! 그런데 처음 알게된 사실 Integer.parseInt()에 인수가 하나 더 들어갈 수 있다는 것!..

[프로그래머스]푸드 파이트 대회 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/134240 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제 문자열 관련 함수만 알고 있으면 쉽게 풀 수 있을 거임 ! StringBuilder로 접근해서 시간을 최대한 줄이려고 했음 ! 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - 연습문제 - 푸드 파이트 대회 // https://school.programmers.co.kr/learn/courses/30/lessons/134240 package PROGRAMMERS...

[프로그래머스]두 개 뽑아서 더하기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/68644 풀이 Level 1 문제임 엄청 쉬운 완전 탐색 문제인 듯?? 숫자 두개를 뽑아서 더하면 같은 결과가 나올 수 있는데 문제를 보면 같은 결과는 같다고 판단하는 것을 알 수 있음. 그래서 Set에다가 추가했는데, Set을 List로 바꿔서 배열을 선언 후에 차례대로 배열에 넣어줬음. 근데 List answerList = answerSet.stream().toList(); 이 문법(stream().toList())은 프로그래머스에서 아직 지원을 안하는 듯? 그래서 for (int temp : answerSet) { answerList.add(temp); } 이렇게 List에 넣어줬음! 자세..

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

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12977 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제임 문제를 보자마자 dfs로 풀었는데 풀고 보니까 제모옥..은... 완전 탐색으로 하겠습니다... 근데 이제,, dfs를 곁들인! 이 되어 버렸네요? 자세한건 주석으로 ! 코드 // 코딩테스트 연습 - Summer/Winter Coding(~2018) - 소수 만들기 // https://school.programmers.co.kr/learn/courses/30/less..

[프로그래머스]햄버거 만들기 - Java

문제 https://school.programmers.co.kr/learn/courses/30/lessons/133502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Level 1 문제인데, 생각보다 시간초과에 걸려서 오래 걸림,,, ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ stack으로도 풀 수 있었을 것 같은데, 고집이 생겨서 어떻게든 String으로 풀려고 했음 String.replace("1231", "")은 1231을 다 한번에 바꾸는 거라 오답 String.replaceFirst("1231", "")은 시간초과나서 통과 못함 StringBuilder랑 St..

[프로그래머스]할인 행사 - 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/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번..