본문 바로가기

분류 전체보기155

[프로그래머스] Lv.1 2016 문제 설명 2016년 1월 1일은 금요일입니다. 2016년 a월 b일은 무슨 요일일까요? 두 수 a ,b를 입력받아 2016년 a월 b일이 무슨 요일인지 리턴하는 함수, solution을 완성하세요. 요일의 이름은 일요일부터 토요일까지 각각 SUN,MON,TUE,WED,THU,FRI,SAT 입니다. 예를 들어 a=5, b=24라면 5월 24일은 화요일이므로 문자열 "TUE"를 반환하세요. 제한 조건 2016년은 윤년입니다. 2016년 a월 b일은 실제로 있는 날입니다. (13월 26일이나 2월 45일같은 날짜는 주어지지 않습니다) 입출력 예 a b result 5 24 "TUE" 필요한 개념 .. (지식) 이 문제의 핵심은 매달이 몇 일로 이루어져있는지 인 것 같다... 누가 그걸 모르냐고,,,? 내가 .. 2024. 2. 27.
[프로그래머스] Lv.1 [1차]비밀지도 ➕2진수로 바꾸기, 비트연산자 사용 문제 설명 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암호화되어 .. 2024. 2. 26.
[프로그래머스] Lv.1 두 개 뽑아서 더하기 ➕ArrayList 이용 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한사항 numbers의 길이는 2 이상 100 이하입니다. 입출력 예 numbers result [2,1,3,4,1] [2,3,4,5,6,7] [5,0,2,7] [2,5,7,9,12] 이 문제의 핵심은 중복된 수를 어떻게 빼느냐이다. 처음엔 어떻게 중복된 수를 뺄까 고민을 하다가 ArrayList 을 알게되었다. 🟣ArrayList ➜ 특징 - ArrayList 클래스는 내부적으로 Object[] 배열 이용 = 인덱스를 이용해 요소에 빠르게 접근 가능 - 동적 배열.. 2024. 2. 26.
[프로그래머스] Lv.1 K번째수 ➕Arrays.copyOfRange() 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 입출력 예 array commands r.. 2024. 2. 25.
[프로그래머스] Lv.1 3진법 뒤집기 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 45 1200 0021 7 • 따라서 7을 return 해야 합니다. 입출력 예 #2 n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 125 11122 22111 229 • 따라서 229를 return 해야 합니다. 이 문제를 접하기 전까지 n진법을 구하는 방법도 몰랐던 나레기... 이 문제에서 얻을 지식 : 10진수 ↔️ n진수 변환 방법 답 도출하는 과정을 설명하자면 1. 10진법으로 표현된 수를 3진법으로 변환한다. (45 -> 1200) 2. 변환한 3진법 수 앞뒤를 반전시킨다. (1200 -> 0021) 3. 반전된 수를 10진법으로 표현한다. (0021.. 2024. 2. 25.
[프로그래머스] Lv.1 숫자 문자열과 영단어 (java) 프로그래머스 Lv.1에 있는 숫자 문자열과 영단어 문제를 풀어보겠다. "one4seveneight" 1478 "23four5six7" 234567 "2three45sixseven" 234567 영단어에서 대응되는 숫자로 바꾸는 문제이다. replace를 활용하면 문제는 쉽게 풀린다. 처음에는 replace 함수를 생각하지 못하고 문자열의 길이로 처리하거나 하나하나 for문으로 문자가 완성될 때 까지 검사를 해야되나 생각했다... 🟢 함수 replace() String str = "나는 코딩을 좋아한다. 하지만 나는 코딩을 못 한다."; str = str.replace("코딩", "파이썬"); System.out.println(str); //결과 나는 파이썬을 좋아한다. 하지만 나는 파이썬을 못 한다. 사.. 2024. 2. 24.