백준 10423 전기가 부족해 풀이 python
OnlineJudge2021. 6. 13. 15:54백준 10423 전기가 부족해 풀이 python

문제로이동 10423번: 전기가 부족해 첫째 줄에는 도시의 개수 N(1 ≤ N ≤ 1,000)과 설치 가능한 케이블의 수 M(1 ≤ M ≤ 100,000)개, 발전소의 개수 K(1 ≤ K ≤ N)개가 주어진다. 둘째 줄에는 발전소가 설치된 도시의 번호가 주어진다. 셋째 www.acmicpc.net 목차 문제 설명 문제를 풀 당시에 골드2로 책정되어 있지만 사실 이보다 낮은 난이도 같습니다. 다른 최소 스패닝트리와 차이가 하나 있다면 이미 발전소와 연결되어 있는 도시는 굳이 한번 더 연결할 필요가 없기 때문에 연결하지 않으면 됩니다. union 함수 부분에 로직을 몇가지 추가했는데, 발전소와 연결되어 있는지를 체크하기 위해서는 기존 방법(Index가 작은 곳으로 연결)대신 발전소를 기준으로 Parent 배..

정올 jungol 2078 13일의 금요일 Java, Python
OnlineJudge2021. 5. 3. 00:44정올 jungol 2078 13일의 금요일 Java, Python

문제로이동 JUNGOL www.jungol.co.kr 목차 문제 설명 모듈러 연산을 하는 문제입니다. N의 범위가 명시되지 않아 TLE를 예측할 수 없지만, 혹시 모를 효율성을 위해 모듈러 연산을 해주었습니다. 자세한 설명은 소스코드에 주석을 달아두었습니다. 소스 코드 Python N = int(input()) # answer : 월,화,수,목,금,토,일의 횟수 저장 answer = [0]*7 # 12개월 초기 세팅 # month[0]은 0 처리 # 구현의 편의성을 위하여 1월~12월의 인덱스를 갖는다. (0~12) # 예시) 1월은 index 0이 아니라 1을 가리킨다. 12월은 index 12를 가리킨다. month = [31]*13 month[0]=0 month[4]=30 # 4,6,9,11월은 3..

백준 16724 피리 부는 사나이 python
OnlineJudge2021. 4. 21. 22:57백준 16724 피리 부는 사나이 python

문제로이동 16724번: 피리 부는 사나이 첫 번째 줄에 지도의 행의 수를 나타내는 N(1 ≤ N ≤ 1,000)과 지도의 열의 수를 나타내는 M(1 ≤ M ≤ 1,000)이 주어진다. 두 번째 줄부터 N개의 줄에 지도의 정보를 나타내는 길이가 M인 문자열이 주 www.acmicpc.net 목차 문제 설명 틀렸습니다*3 Union-Find를 하며 주의해야 할 점이 parent에 직접 접근을 하게 되면 미처 업데이트 되지 않았던 값들이 있기에 반드시 getParent로 접근을 해야하는데 이를 놓쳐버렸습니다😅 접근 방법 문제 방향을 잡는데 5분 가량 걸렸습니다. 처음엔 필드에 적힌대로 이리 저리 따라가다가, Union-Find라는 것을 알게 되었습니다! 이 문제를 푸는데 있어서 가장 중요한 것은 구역 입니다..

[프로그래머스] 풍선 터뜨리기 python, java
OnlineJudge2021. 4. 21. 22:08[프로그래머스] 풍선 터뜨리기 python, java

문제로이동 코딩테스트 연습 - 풍선 터트리기 [-16,27,65,-2,58,-92,-71,-68,-61,-33] 6 programmers.co.kr 목차 문제 풀이 접근 방법 어떤 알고리즘인지 전혀 맥락을 못잡다가 문제 푼 지 35분이 경과되어서 알게 되었습니다. 2개의 임의의 풍선 중 크기가 큰 풍선을 터뜨려야 한다. 단, 크기가 작은 풍선은 딱 1번만 터뜨릴 수 있다. 풍선을 터뜨렸다면 풍선의 빈 공간을 다시 채운다(양 옆의 풍선을 당겨준다) 최후에 1개의 풍선이 남았을 때, 절대 남을 수 없는 풍선의 갯수를 구하자 DFS인가? 생각했다가 N의 크기를 보고 절대 아니라고 판단했고, O(N)에 끝내야 한다는 것으로 생각을 굳혔습니다. 다른 측면에서 생각해볼까요? 어떤 임의의 풍선을 선택하고 왼쪽 또는 ..

백준 16954 움직이는 미로 탈출 python
OnlineJudge2021. 4. 20. 11:12백준 16954 움직이는 미로 탈출 python

문제로이동 16954번: 움직이는 미로 탈출 욱제는 학교 숙제로 크기가 8×8인 체스판에서 탈출하는 게임을 만들었다. 체스판의 모든 칸은 빈 칸 또는 벽 중 하나이다. 욱제의 캐릭터는 가장 왼쪽 아랫 칸에 있고, 이 캐릭터는 가장 오른쪽 www.acmicpc.net 목차 시작하기 전에 2개월 전에 스터디에서 공통 문제로 풀었다가 실패했던 문제였습니다. 이번엔 노트에 로직을 정리하고 1WA를 맞은 뒤 이거다! 싶어서 수정했는데 정답이었고 2회에 걸쳐 로직을 수정/추가했습니다. 접근 방법 벽이 움직인다는 점에서 캐슬디펜스 문제와 비슷하다고 생각했습니다. 비슷한 방식으로 접근했다가 큰 코 다쳤는데 그 이유는 캐슬 디펜스에선 주인공 위치가 고정되어 있지만, 이번 문제는 사방탐색(상하좌우) 뿐만 아니라 대각선 이..

SWEA 1953 탈주범 검거 java 풀이
OnlineJudge2021. 4. 15. 13:37SWEA 1953 탈주범 검거 java 풀이

문제로이동 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 설명 얼핏 보면 간단한 BFS/DFS 문제로 보입니다. 하지만 주의해야 할 점이 있습니다. 자, 위와 같은 경우를 볼까요? 모든 방향(상하좌우)으로 나아갈 수 있는 1번 터널이지만 반대로 내가 가려고 하는 목적지에 도달이 불가능한 경우입니다. 위와 같이 좌,우로만 접근해야하는 터널이 있는 경우에 말이죠. 그래서 저는 다음과 같이 메소드를 구현했습니다. 첫째, 현재 터널 모양에서 나아갈 수 있는 방향을 반환(좌,우만 갈 수 있는 터널이라면 좌,우를 반환)하는 int[] getDirection 메소드 둘째, 다음 터널이 내가 지금 나아가려 하는 방향으..

[2021 KAKAO BLIND] 신규 아이디 추천 Python re
OnlineJudge2021. 4. 12. 22:56[2021 KAKAO BLIND] 신규 아이디 추천 Python re

문제로이동 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제 설명 re 라이브러리를 사용했습니다. 좌/우측 특정 문자 제거 좌/우측 특정 문자 또는 공백 제거엔 strip(), lstrip(), rstrip()을 사용합니다. 이번 문제에서는 .을 제거하는 것이므로 strip('.')과 같이 사용할 수 있었습니다. 치환 및 제거 정규표현식에 해당하는 문자들을 치환, 제거하기위해 re.sub 함수를 사용했습니다. 위 두 기능을 제외하고는 하드코딩으로 가능하기에 생략하겠습니다. 이번 문제를 풀면서 re ..

SWEA 5644 무선충전 Java, Python
OnlineJudge2021. 4. 12. 18:04SWEA 5644 무선충전 Java, Python

문제로이동 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 목차 문제 설명 시뮬레이션/구현 문제입니다. 이미 필드의 크기가 10*10으로 고정되어 있고 주인공의 위치도 고정되어 있어 수월하게 접근 가능했습니다. BC의 위치와 세기, 허용 거리가 다르기 때문에 이를 중점적으로 어떻게 계산할 것인지 판단해야 합니다. 저는 두 주인공을 동시에 움직이면서 매 이동마다(t=0부터) 모든 BC와 거리를 계산했고 주인공 A, 주인공 B가 사용할 수 있는 BC를 리스트에 담았습니다. 정리하자면, 로직은 아래와 같습니다. 입력조건 BC를 입력 받을 때 POWER를 내림차순으로 정렬해 줍니다.(이후에 따로 정렬할 필요가 없어집니..

SWEA 1249 보급로 JAVA
OnlineJudge2021. 4. 12. 17:37SWEA 1249 보급로 JAVA

문제로이동 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com (상) DFS, (하) BFS 문제 설명 이 문제는 DFS, BFS로 풀이가 가능하며, 최단경로를 구하는 문제이므로 다익스트라 접근도 가능합니다. 저는 DFS와 BFS로 접근했으며 아래와 같은 변수를 사용했습니다. 1. 방문을 체크하는 visited 2. Cost를 저장하는 dp 3. 기본 필드 입력 field 난이도 D3정도 되는 일반적인 BFS, DFS문제와 비교했을때 가장 큰 차이점은 가지치기 입니다. 그렇기에 아직 방문하지 않았거나(visited) 현재 좌표에서 cost가 더 낮다면 갱신(dp)하는 방법으로 가지치기 할 수 있습니다. 아래는 co..

백준 6497 전력난 java
OnlineJudge2021. 3. 27. 18:36백준 6497 전력난 java

문제로이동 목차 문제 설명 일반적인 최소스패닝 트리(MST) 문제입니다. 크루스칼 알고리즘과 프림 알고리즘으로 해결해봤습니다. 런타임 에러1 이 문제는 테스트 케이스가 여러개 들어옵니다. 마지막 0 0 입력이 왜 있는가 했더니,, 결국 이 문제점을 뒤늦게 이해하고 코드 수정을 하여 AC를 받았습니다. 즉, 0 0이 입력되기 전까지 테스트 케이스가 무한대로 들어오니 M,N 값을 검증해야 합니다. if(M==0 && N==0) return; 런타임 에러2 전혀 생각지 못했던 이유였습니다. 하단 소스코드엔 while문 밖으로 선언되어 있지만 아래처럼 while문 내에 삽입했더니 발생했습니다. while(true){ BufferedReader br = new BufferedReader(new InputStrea..

image