본문 바로가기

알고리즘44

항해99 TIL 5일차 (숫자 문자열과 영단어 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 문자로 나왔을 때 1 번째 글자와 2 번째 글자만 보면 된다. ze가 나오면 0, on가 나오면 1 ..... for문을 돌면서 i, i+1을 확인한다. 숫자라면 i++를 해주고 문자로 표현된 숫자라면 i += 문자열 길이를 해주면 된다(지금 문자가 무엇인지 확인했으므로 바로 다음 문자 확인) import java.util.*; class Solution { public int solution(String s) { StringBuffer sb = new StringBuffer(); for(.. 2024. 3. 30.
항해99 TIL 4일차 (체육복 / 프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 문제 파악 2번 학생은 1,3 번 학생의 교복을 빌릴 수 있지만 1번 교복을 빌리는 게 최상의 선택입니다. 왜냐하면 3번 교복을 빌릴시, 교복을 잃어버린 4번 학생이 교복을 못 빌릴 수 있기 때문입니다. 고로, 로직은 자신의 앞 번호에 해당하는 교복이 있으면 빌리고 없으면 뒤에 있는 교복을 빌리는 로직으로 짜겠습니다. 만약 3번 학생이 1번 학생의 교복을 빌리지 못한다면 4 번학생은 1 번학생의 교복을 빌릴 수 있는지 탐색을 안해도 됩니다. +) 까먹고 제한사항을 확인을 안했습니다. 다시 .. 2024. 3. 29.
항하99 TIL 3일차(바탕화면 정리/프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 아이디어: 그리드 / 현재 상황 속에서 최적인 해 구하기 정렬하지 않은 배열을 다 돈다. x1,y1의 최솟값을 구하고 x2,y2의 최댓값을 업데이트 해간다. import java.util.*; class Solution { public int[] solution(String[] wallpaper) { int height = wallpaper.length; int width = wallpaper[0].length(); int lux = Integer.MAX_VALUE; int luy = In.. 2024. 3. 28.
99클럽 코테 스터디 2일차 TIL(최댓값과 최솟값 /프로그래머스) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1 번째 시도 import java.util.*; class Solution { public String solution(String s) { String[] ch = s.split(" "); int n = ch.length; int[] numbers = new int[n]; for (int i = 0; i < n; i++) { numbers[i] = Integer.parseInt(ch[i]); } int min = numbers[0]; int max = numbers[0]; for (int j = 1;.. 2024. 3. 27.
[백준] 7785번 회사에 있는 사람 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원은 자기가 원할 때 출근할 수 있고, 아무때나 퇴근할 수 있다. 상근이는 모든 사람의 출입카드 시스템의 로그를 가지고 있다. 이 로그는 어떤 사람이 회사에 들어왔는지, 나갔는지가 기록되어져 있다. 로그가 주어졌을 때, 현재 회사에 있는 모.. 2024. 3. 25.
[프로그래머스] Lv2 두 원 사이의 정수 쌍 첫 번째 시도(실패) - 규칙 찾기 반지름 1 - 5(4+1) 반지름 2 - 13(4+9) 반지름 3 - 29(4+25) 반지름 4 - 53(4+49) - 규칙 보여서 코드 짰음 - 예외가 있었음(규칙이 아니였던 거임) 테두리가 꼭 4점만 정수여야 하는 건 아님 두 번째 시도 (성공 and 타임아웃) x,y 각각 +1 하면서 x^2 + y^2 2024. 3. 12.
[프로그래머스] 소수찾기(완전탐색, 소수 찾기) 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 사고 과정 완전 탐색으로 숫자 조합 배열에 저장하기 배열 하나씩 돌면서 소수 찾기 코드 import java.util.HashSet; public class Solution { HashSet numberSet = new HashSet(); public int solution(String numbers) { permutation("", numbers); // 가능한 모든 숫자 조합 생성 return (int) numberSet.stream().filter(this::isPrime).count(); // 소.. 2024. 2. 23.
알고리즘 관련 단어 BFS, DFS는 반드시 알아놔야 한다. 하드코딩으로 문제를 해결할 수 있다 하더라도 시간복잡도에서 걸러지기 마련이다. DFS (Depth-First Search) 한 가지 경우를 검증하고 아니면 돌아가는 방식이다. 스택, 재귀함수 이용 / 그래프 구조, 미로 찾기 유용 visited 리스트를 만들어서 방문한 노드를 저장한다 DFS를 최단거리에서 사용하지 않는 이유 목적지와 반대방향이더라도 끝까지 탐색하기 때문에 BFS (Breadth-First Search) visited 리스트를 만들어서 방문한 노드를 저장한다 큐 이용 / 최단 경로 찾기 유용 가중치가 없는 간선, 최단거리 문제에 이용 가중치가 있는 간선에서 BFS를 쓰지 않는 이유 BFS가 Greedy한 알고리즘이 아니기 때문이다 다익스트라(Dij.. 2024. 2. 20.