728x90

java 7

DFS / BFS

1. DFS / BFS 개념 비교 두 알고리즘 모두 그래프나 2차원 배열의 모든 정점을 방문할 때 사용하지만, 탐색 순서와 용도가 다르다. DFS (Depth-First Search, 깊이 우선 탐색)주요 용도 : 경로의 특징 저장, 백트래킹, 사이클 탐지자료 구조 : 스택 또는 재귀특징 : 시작 노드에서 갈 수 있는 한 뱡으로 끝까지 깊게 들어갔다가,더 이상 갈 곳이 없으면 가장 가까운 갈림길로 돌아와 다른 방향 탐색 BFS (Breadt--Frist Search, 너비 우선 탐색)주요 용도: 최단 거리(가중치 x), 최소 횟수자료 구조 : 큐특징 : 시작 노드에서 가까운 노드부터 우선적으로 모두 탐색한 후, 그 다음 단계의 노드들을 탐색 (*최단 경로 찾기에 적합) 2. 구현 패턴 (Java)공통..

알고리즘 2026.01.09

[프로그래머스] 체육복

문제 : 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost, 여벌의 체육복을 가져온 학생들의 번호가 담긴 배열 reserve가 매개변수로 주어질 때, 체육수업을 들을 수 있는 학생의 최댓값을 return 하도록 solution 함수를 작성해주세요. 풀이 : 해당 문제는 탐욕법으로 풀어야 하는 문제이다. 우선 lost,reserve를 정렬여벌이 있는 학생이 도난 당할 수 있기에 먼저 처리 (체육복을 빌려주고, 빌린 걸 받은 사람은 -1 처리)앞사람, 뒷사람까지 빌려줄 수 있으므로 해당 조건에 만족하는 지 비교 후 빌림 처리 (-1로 처리)기존에 있던 학생 수 (n)에서 체육복을 못빌린 사람을 제외하는 방식으로 최종 결과 도출 import java.util.*;class Solut..

알고리즘 2026.01.02

[프로그래머스] 광물 캐기

풀이: 1. 알고리즘 파악처음에는 "곡괭이를 하나 고르고 -> 5개 캐고 -> 다음 곡괭이 고르고..." 이렇게 가지치기하듯(트리 순회) 모든 경우를 다 따져보는 방식을 생각했다. 하지만 이 문제에는 규칙이 있다. 규칙: 곡괭이를 하나 들면 무조건 광물 5개를 연속으로 캐야 합니다.핵심: 광물의 순서는 바꿀 수 없지만, 어떤 곡괭이를 먼저 쓸지는 우리가 정할 수 있습니다.따라서 굳이 모든 트리를 다 돌 필요 없이, "가장 딱딱하고 비싼 광물이 뭉쳐 있는 구간에 가장 좋은 곡괭이를 쓴다"는 전략(그리디)을 쓰면 훨씬 쉬울 것 같다.2. 알고리즘 설계 (로직 구성)끊어 읽기: 광물을 5개씩 묶어서 하나의 '그룹'으로 생성가중치 계산: 각 그룹을 ..

알고리즘 2026.01.02

[프로그래머스] 기사단원의 무기

문제 : 기사단원의 수를 나타내는 정수 number와 이웃나라와 협약으로 정해진 공격력의 제한수치를 나타내는 정수 limit와 제한수치를 초과한 기사가 사용할 무기의 공격력을 나타내는 정수 power가 주어졌을 때, 무기점의 주인이 무기를 모두 만들기 위해 필요한 철의 무게를 return 하는 solution 함수를 완성하시오. 풀이: 약수 구하는 단순한 문제 같은데, 시간 초과를 고려해야 한다. 1차 코드 : 약수 구할 때 시간 초과 발생!class Solution { public int solution(int number, int limit, int power) { int answer = 0; for(int i=1; ilimit){ sum=..

알고리즘 2025.12.23

[프로그래머스] 추억 점수

인턴 생활 + 적응 + 하반기 취준 준비로 정신이 없어서 코딩 테스트 준비를 하지못하였다.. 내년 상반기를 위해 다시 코딩 테스트 준비를 해보려고 한다! 클라우드 위주로 공부하니까 Java 문법을 정말 많이 까먹었다 ㅠㅠ 우선 감을 잡기 위해 Level 1~2 부터 차근차근 해보자!문제 : 사진들을 보며 추억에 젖어 있던 루는 사진별로 추억 점수를 매길려고 합니다. 사진 속에 나오는 인물의 그리움 점수를 모두 합산한 값이 해당 사진의 추억 점수가 됩니다. 예를 들어 사진 속 인물의 이름이 ["may", "kein", "kain"]이고 각 인물의 그리움 점수가 [5점, 10점, 1점]일 때 해당 사진의 추억 점수는 16(5 + 10 + 1)점이 됩니다. 다른 사진 속 인물의 이름이 ["kali", "ma..

알고리즘 2025.12.22

[Java] 자바의 기초 - 자료형

책 내용 중"자료형을 충분히 이해하지 않고 프로그래밍을 시작하려는 것은 기초 공사를 제대로 하지 않고 건물을 세우는 것과 같다." 라는 구절이 있다. 그 만큼 자료형은 굉장히 중요한 부분이니 자료형을 잘 이해하고 넘어가자!!자료형자료형(data type)이란, 데이터의 종류와 크기를 결정하는 기본 구성 요소로 숫자, 문자열처럼 자료 형태로 사용하는 모든 것을 뜻한다.프로그래밍에서 가장 기본적이면서 핵심 단위가 되는 것이 바로 자료형이다.자료형 - 숫자(1) 정수정수를 표현하는 자료형은 int,long이다.자료형표현 범위int-2,147,483,648 ~ 2,147,483,647long-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807int,long을 사용한 ..

Java 2025.04.24

[Java] 자바 시작하기

Java 문법을 어느정도 알고 있기는 하지만, 능숙히 잘 다룬다고는 말하지 못할 것 같다. 그래서 기본부터 차근차근 다시 공부를 시작해보고자 포스팅을 시작하게 되었다.🔥 목표 : 자바에 익숙해져 자바로 코딩테스트를 보는 것이 최종 목표이다.(1) 자바 코드 구조 살펴보기파일이름 : 클래스명.java/* 클래스 블록 */public class 클래스명 { /*메서드 블록*/ [public || private || protected] [static] (리턴자료형 | void) 메서드명(입력 자료형 매개변수,...){ 명령문(statement); ... }}‼️ 주의사항 ‼️반드시 클래스명은 소스 파일의 이름과 똑같이 사용해야 한다.다음과 같이 클래스명과 소스 파일이 일치하지 않으면 빨간 줄이 뜨면서 실..

Java 2025.04.24
728x90