Banner

My Tech Blog (Java)

📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/250125 입출력 예 #1주어진 보드를 나타내면 아래 그림과 같고, board[1][1]의 인접한 칸들은 화살표가 가리키는 칸들입니다. 따라서 board[1][1] 주변의 "red" 칸은 총 2개입니다. 입출력 예 #2주어진 보드를 나타내면 아래 그림과 같고, board[0][1]의 인접한 칸들은 화살표가 가리키는 칸들입니다. 따라서 board[0][1] 주변의 "green"칸은 총 1개입니다.💡 2. 풀이과정해당 칸을 color 변수에 담아 주고 배열 상,하,좌,우 위치만 확인해서 color이랑 같으면 answer++ 하는 쉬운 문제이다. 여기서 해당 위치를 [h,w]라고 할 때..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/340198문제 요약park : 공원 자리 배치. "-1"이면 빈 자리, 다른 값이면 사람이 앉아 있음mats : 지민이가 가진 돗자리 크기가 담긴 배열이다. 각 요소는 한 변의 길이목표 : 공원에서 사람이 없는 영역("-1")을 찾아서, 지민이가 가진 돗자리 중 가장 큰 크기를 깔 수 있는지 확인하는 코드짜기💡 2. 풀이과정생각해 볼 문제1. 가장 큰 돗자리 구하기문제에서 가장 큰 돗자리를 구하라고 했으니까 큰 돗자리부터 깔아보고, 가능하면 바로 결과 리턴할 수 있도록 한다.이 부분은 돗자리의 길이가 담긴 배열 mats를 오름차순 정렬 후 역순 탐색으로 처리했다.2. 공원 탐색할 ..
📑 1. 문제설명1 ~ n의 번호가 있는 택배 상자가 창고에 있습니다. 당신은 택배 상자들을 다음과 같이 정리했습니다. 왼쪽에서 오른쪽으로 가면서 1번 상자부터 번호 순서대로 택배 상자를 한 개씩 놓습니다. 가로로 택배 상자를 w개 놓았다면 이번에는 오른쪽에서 왼쪽으로 가면서 그 위층에 택배 상자를 한 개씩 놓습니다. 그 층에 상자를 w개 놓아 가장 왼쪽으로 돌아왔다면 또다시 왼쪽에서 오른쪽으로 가면서 그 위층에 상자를 놓습니다. 이러한 방식으로 n개의 택배 상자를 모두 놓을 때까지 한 층에 w개씩 상자를 쌓습니다.위 그림은 w = 6일 때 택배 상자 22개를 쌓은 예시입니다. 다음 날 손님은 자신의 택배를 찾으러 창고에 왔습니다. 당신은 손님이 자신의 택배 상자 번호를 말하면 해당 택배 상자를 꺼내줍..
📑 1. 문제설명https://school.programmers.co.kr/learn/courses/30/lessons/81303[본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 업무용 소프트웨어를 개발하는 니니즈웍스의 인턴인 앙몬드는 명령어 기반으로 표의 행을 선택, 삭제, 복구하는 프로그램을 작성하는 과제를 맡았습니다. 세부 요구 사항은 다음과 같습니다.위 그림에서 파란색으로 칠해진 칸은 현재 선택된 행을 나타냅니다. 단, 한 번에 한 행만 선택할 수 있으며, 표의 범위(0행 ~ 마지막 행)를 벗어날 수 없습니다. 이때, 다음과 같은 명령어를 이용하여 표를 편집합니다"U X": 현재 선택된 행에서 X칸 위에 있는 행을 선택합니다."D X": 현재 선택된 행에서 X칸 아래에 있는 행..
📑 1. 문제설명💡 2. 풀이과정이건 이중 for문 + Set + 정렬 문제이다.입출력예에서 중복값이 없기 때문에 중복을 허용하지 않는 자료형 해시셋을 사용해서 푼다. 1. 배열에서 이중 포문을 사용해서 두 수를 선택하는 모든 경우의 수를 구한다.2. 위에서 구한 수를 더해서 해시셋에 추가해서 중복제거한다.3. 해시셋 값을 오름차순 정렬한다.4. int[] 형태의 배열로 변환해서 반환한다. 이 때 stream을 사용한다.👨‍💻 3. 정답코드처음에 이중 for문의 범위를 잘못 잡았는데, 바깥 for문의 i 범위를 `i 이렇게 하면 노노❌ 왜냐하면 바깥 for문에서 i 이 경우 j 결국 바깥 for문 마지막 반복 (i == 마지막 인덱스)에서는 j가 더할 상대가 없기 때문에쓸모 없는 반복이 한 번 일..
· Java
this는 자바(Java)를 포함한 여러 객체지향 언어에서 객체 자기 자신을 가리키는 키워드로 알려져 있다. this는 현재 객체의 참조(reference)로서 지금 실행되고 있는 메서드를 소유하고 있는 인스턴스를 가리킨다. setter 메서드안에서 가장 쉽게 this의 활용법을 확인할 수 있다. public class Person { private String name; public void setName(String name) { this.name = name; }}this.name → 객체의 멤버 변수 namename → 메서드의 매개변수만약에 this를 안 쓰면 어떻게 될까?public void setName(String name) { name = name; /..
📑 1. 문제설명💡 2. 풀이과정이렇게 반환할 문자열의 길이가 고정되지 않은 경우는 배열을 못 쓰기 때문에StringBuilder을 써주는게 좋다. StringBuilder을 쓰면 마지막에 문자열을 반환할 때 toString() 으로 전환해야 한다.code를 인덱스에 따라 한 글자씩 돌면서 각 문자(char)이 1인지 아닌지 확인한다.1이면 mode 전환1이 아니면i) mode가 0일 때는 인덱스가 짝수면 해당 문자를 ret에 append함ii) mode가 1일 때는 인덱스가 홀수면 해당 문자를 ret에 append함ret.length()가 0이면 "EMPTY" 출력, 아니면 ret.toString() 출력👨‍💻 3. 정답코드class Solution { public String soluti..
📑 1. 문제설명💡 2. 풀이과정먼저 앞 3개의 항을 변수에 담는다.등차수열인지 등비수열인지 판별한다. b-a 랑 c-b가 같으면 등차수열이고 아니면 등비수열이다. 다음에 올 값 구하는 법 ▼등차수열이라면 common배열의 마지막 요소에 b-a 값을 더한다.등비수열이라면 common배열의 마지막 요소에 b/a 값을 곱한다.👨‍💻 3. 정답코드class Solution { public int solution(int[] common) { // 앞 3개의 항으로 등차수열인지 등비수열인지 판별 int a = common[0]; int b = common[1]; int c = common[2]; int index = common.lengt..
인절미였던것
'Java' 태그의 글 목록 (4 Page)
상단으로