전체 글 24

[백준 2565] 전깃줄

https://www.acmicpc.net/problem/2565 "[백준 11722] 가장 긴 감소하는 부분 수열" 문제와 마찬가지로, DP를 이용한 최장"증가"부분수열의 길이를 구하는 것이 핵심인 문제이다.  # 문제 해석 (핵심!)1. "전봇대 A, B" = A를 인덱스, B를 값으로 하는 배열 2. "줄이 교차하지 않는다." = 위 배열이 오름차순으로 정렬되어 있다. (빈 공간 제외) 3. "없애야 하는 줄의 최소 개수" = 위 배열을 오름차순으로 만들기 위해 지워야 할 원소의 최소 개수# 풀이방법1. "BOJ_11722_최장감소부분수열" 문제와 유사하게, 최장"증가"부분수열의 길이를 구한다.2. 전깃줄 개수 N에서 위 길이를 뺀 값이 정답이 된다. 왜냐하면 최장증가부분수열에 포함되지 않는 원소가..

[elice 알고리즘 코드 챌린지] Day 3 - 문자열 압축 해제

import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String s = br.readLine(); Stack countStack = new Stack(); // 반복할 횟수를 저장 Stack lengthStack = new Stack(); // 현재까지의 문자열 길이를 저장 int length = 0; for (int i = 0; i  ..

[prog 81302] 거리두기 확인하기

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.krclass Solution { static char[][] map; static boolean[][] visited; public int[] solution(String[][] places) { int[] answer = new int[5]; for (int tc = 0; tc  1. 풀이 요약이 문제는 5개의 5x5 대기실에서 거리두기 규칙을 준수하고 있는지를 판단하는 것입니다. 각 대기실에서 'P'로 표시된 응시자들 사이의 맨해튼 거리가 2 이하인 ..

[prog 17680] 캐시

프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr import java.util.*;class Solution { public int solution(int cacheSize, String[] cities) { int answer = 0; List list = new LinkedList(); for (String city : cities) { city = city.toUpperCase(); // 모두 대문자로 변경 if (!list.contai..

DFS + Map (PRO 여행경로)

https://school.programmers.co.kr/learn/courses/30/lessons/43164문제 키워드"알파벳 순서대로 저장" -> PriorityQueue (기본적으로 min heap)"같은 출발지에 도착지가 여러 개" -> PQ를 값으로 담는 Map"모든 도시를 방문" -> 완전탐색"경로가 의미 있음" -> BFS가 아닌 DFS  import java.util.*;class Solution { static Map> map; static List answer; public String[] solution(String[][] tickets) { // 1. 출발지 - 도착지"들" 짝지어 저장 map = new HashMap(); ..

git

VCS (Version Control System)개발되는 SW의 '시간'과 '차원'을 관리하고 통제한다.1) 저장 공간 및 백업 시간을 아낄 수 있고, 2) 각 버전의 변화를 파악하기 쉬우며, 3) 특정 부분만 되돌리기 쉽다.작업 내역을 팀원과 공유하고 협업할 수 있게 돕는다. GitCommit : 프로젝트 상태를 현재 버전으로 저장. 이전 버전과 비교해 무엇이 수정되었는지 상세히 보여준다.Reset : 문제가 된 커밋의 이전 시간으로 돌아감. (그 사이 작업들 모두 삭제)Revert : 문제가 된 커밋만 수정 후 새로 추가. (그 사이 작업들 삭제되지 않음)Branch : 하나의 프로젝트 폴더 안에 여러 차원을 분기. 기능 테스트를 위해 활용된다.Merge : 브랜치 병합 기능. 다른 차원의 작업 내..

Programming 2024.01.14

[혼공파] Iteration

● 1. List & Iterationstring과 list는 매우 비슷한 data type이므로, 사용할 수 있는 연산자와 함수도 비슷하다.비파괴적인 list 연결 연산자와 달리, 파괴적인 아래 함수들은 list 자체를 바꿔버린다.연산(비파괴적)+연결*반복len()element 개수 세기추가list .append(요소)list 뒤에 추가list .insert(위치, 요소)list 중간에 추가list .extend( [요소1, 요소2 ..] )한 번에 여러 요소 추가 (매개변수로 list를 입력)제거del list [index]위치 기반 제거 (slicing해 여러 개 제거도 가능)list .pop(index)위치 기반 제거  (index 미입력시 -1로 취급해 마지막 요소 제거)list .remove(..

Programming 2023.12.31

[혼공파] Conditional

● 1. Boolean data type & if conditional- Bool 만들기 - Comparison operators==같다!=다르다작다>크다작거나 같다>=크거나 같다 - Bool끼리 연산하기 - Logical operatorsnot불을 반대로 전환and피연산자 두 개 모두 참 = True  /  그 외 = Falseor피연산자 중 하나만 참이라도 = True / 두 개 모두 거짓 = False  - [예제 p.169]  짝수와 홀수 구분하기풀이 1 - 끝 자리로 구분  (사람의 방법)number = input("정수 입력> ")last_character = number[-1]    # 마지막 자리 숫자 indexinglast_number = int(last_character)    # da..

Programming 2023.12.15