Banner

My Tech Blog (답)

오늘의 명언
📑 1. 문제설명 💡 2. 풀이과정처음에는 3,6,9 게임을 잘못 이해했다.3의 배수일 때 박수 치는 걸로 이해해서 해당 숫자를 3으로 나눈 나머지가 0일 때 cnt ++을 하는 실수를 했다. 하지만 오리지널 369게임은 숫자 3, 6, 9가 들어가면 박수를 치는 게임이다. 즉, 숫자 하나 하나가 3 또는 6 또는 9 값을 가지면 횟수를 카운트하고 마지막에 총 횟수를 리턴한다. 주어진 숫자를 문자열로 바꿔서 각 자릿수를 탐색해도 되지만이 문제에서 어차피 숫자의 순서는 상관 없고주어진 order 안에서 3, 6, 9가 총 몇개인지 갯수면 세면 되는 문제이기 때문에주어진 숫자를 10으로 나눈 나머지가 3,6,9에 해당하는지만 확인하면 쉽게 풀 수 있다. 1. 주어진 숫자(order)를 10으로 나눈 나머..
📑 1. 문제설명 입출력 예 설명입출력 예 #1["We", "are", "the", "world!"]의 각 원소의 길이인 [2, 3, 3, 6]을 return합니다.입출력 예 #2["I", "Love", "Programmers."]의 각 원소의 길이인 [1, 4, 12]을 return합니다.💡 2. 풀이과정✔️ 해결방법매개변수로 받은 strlist의 길이만큼 결과값을 담을 배열(lengths)을 하나 선언 해 준다.그리고 반복문을 돌려가며strlist각 요소(문자열)의 길이를 구해서 배열(lengths)에 담아 리턴한다. ✔️ length()와 length의 차이만 알면 쉬운 문제`length` 는배열에서 사용 되고, `legnth();`는 문자열에서 사용된다. 2-1. lengthlength는 배열..
📑 1. 문제설명💡 2. 풀이과정1. 문자열을 공백을 기준으로 나눠 배열 str에 저장한다.2. 최종 결과 값을 저장할 sum 변수 선언3. 마지막으로 추가된 숫자를 저장할  lastNumber 변수 선언4. 배열을 순회하면서4-1. "Z"가 나오면 lastNumber를 sum에서 뺀다.4-2. 숫자가 나오면 lastNumber에 저장하고 sum에 더한다.5. 최종 sum을 반환한다.👨‍💻 3. 정답코드class Solution { public int solution(String s) { String[] tokens = s.split(" "); int sum = 0; int lastNumber = 0; for (String to..
📑 1. 문제설명 💡 2. 풀이과정그냥 매개변수로 받은 문자열을 toCharArray() 메서드로 배열로 변환한 뒤, 배열을 순환하며 모음이 아닐 때만 StringBuilder에 추가해주면 되는 간단한 문제이다. 단, 처음에 틀린 이유는c != 'a' && c != 'e' && c != 'i' && c != 'o' && c != 'u' 라는 조건을 설정할 때 and조건 대신 or연산자를 써서 틀렸다.  or 연산자는 하나라도 true면 전체가 true가 되기 때문이다. 결국, 어떤 문자가 들어오든 항상 true가 돼서 모음을 걸러내지 못하고 모든 문자를 추가하는 문제가 발생한다.false || false || true || false || false → 결과: **true**👨‍💻 3. 정답코드..
📑 1. 문제설명 💡 2. 풀이과정 j = 1부터 j = i까지 j를 증가시키면서 i % j == 0이면 cnt++ 증가즉, i를 1부터 i까지 나누면서 나누어떨어지는 개수를 세는 방식cnt >= 3이면 answer++; answer 반환 👨‍💻 3. 정답코드class Solution { public int solution(int n) { int answer = 0; for(int i = 4; i = 3) { answer++; } } return answer; }}
📑 1. 문제설명 💡 2. 풀이과정구하고자 하는 것은 직육면체 안에 정육면체 주사위가 몇 개 들어가는지이다.직육면체의 부피 / 정육면체의 부피를 계산해서 반환하면 된다. 직육면체 부피는 배열 box를 0번 인덱스부터 순회하면서 가로*세로*높이를 해서 구한다.// box 배열의 부피 계산int volume = box[0] * box[1] * box[2]; 정육면체의 부피는 n의 세제곱인데, 그냥 n*n*n; 이라고 써도 되지만두 숫자를 이용해서 거듭제곱 구하는 수학 메서드를 이용해서 코드를 작성해 주었다. `Math.pow(첫번째숫자, 두번째숫자)`첫 번째 숫자를 두 번째 숫자만큼 거듭제곱한 결과를 반환대신 Math.pow는 double형식으로 값을 리턴하기 때문에 int로 캐스팅해야한다. 👨‍💻 ..
📑 1. 문제설명 💡 2. 풀이과정두 가지 경우로 나누어서 해결하기direction 이 right인 경우와 left인 경우로 구분했다."right" 방향으로 회전: 배열의 마지막 요소를 맨 앞에 넣기 + 나머지 요소들은 한 칸씩 뒤로 이동"left" 방향으로 회전: 배열의 첫 번째 요소를 맨 뒤로 보내기 + 나머지 요소들은 한 칸씩 앞쪽으로 이동👨‍💻 3. 정답코드내가 푼 코드import java.util.*;class Solution { public int[] solution(int[] numbers, String direction) { int[] answer = new int[numbers.length]; if (direction.equals("right")) {..
📑 1. 문제설명💡 2. 풀이과정✔️answer 배열 크기 = (num_list.length / n) x n행(row): `(num_list.length / n)`열(column): `n`✔️num_list[i]를 삽입할 answer 배열의 인덱스행(row):  `i / n`열(column): `i % n`  문제의 입력 예시처럼 [1, 2, 3, 4, 5, 6, 7, 8], n = 2 일 때inum_list[i]i / n (행 인덱스)i % n (열 인덱스) 배치 결과0100answer[0][0] = 11201answer[0][1] = 22310answer[1][0] = 33411answer[1][1] = 44520answer[2][0] = 55621answer[2][1] = 66730answer[..
상단으로