목록알고리즘 (129)
이숭간 공부기록
https://programmers.co.kr/learn/courses/30/lessons/43162 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제유형 : DFS/BFS 문제풀이 : 전형적인 DFS(BFS)문제로 "연결된 덩어리들이 몇개냐" 구하는 문제 DFS를 통해 노드들을 방문하는데, 자기자신이 아니면서 연결된 노드가 있을때, 해당노드가 아직 방문 전이면 재귀적으로 해당노드를 출발점으로 하여 DFS를 호출한다. 더이상 연결된 노드들이 없을때 DFS의 재귀가 끝나므로 그때 answer에 1을 추..
https://programmers.co.kr/learn/courses/30/lessons/17681 문제유형 : 구현 문제풀이 딱히 어렵진 않았던 문제지만 신박한 파이썬 내장함수를 배우게되어 정리한다. 10진수 2진수 변환 : bin() 나는 이걸 몰랐어서 그냥 재귀로 10진수에서 2진수로 변환하는 tobinary()함수를 만들어서 썼다. >>> bin(10) '0b1010' // 앞에붙은 0b를 없애려면 슬라이스기능을 이용해서 [2:] 요로코롬 오른쪽 정렬후 원하는문자로 메우기 : rjust() val = "77".rjust(5, "0") >> 77000 자매품 (왼쪽정렬) val = "77".ljust(5, "0") >> 00077 그리고 이문제는 0,1로 이루어진 문자열을 활용해서 비트연산자(논리..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/wjj3J/btq5MnYB9yf/lIo4MLNoVKB2jwLXGC7A91/img.jpg)
https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제유형 : DFS/BFS 문제풀이 아래 사진처럼 각 노드들은 결과값을 담고있고, 엣지에 각각 +,- 가 붙은 numbers의 원소가 붙게된다. 최종적으로 numbers끝까지 계산이 완료됬을경우, 즉 count가 len(numbers)인경우에 해당 노드값 (result)가 target과 같으면 원하는 결과값을..
https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 문제유형 : 문자열, 구현 문제풀이 ID와 닉네임을 키:값으로 갖는 딕셔너리를 이용 ( defaultdict 이용) Enter와 Change일때만 딕셔너리에 해당 아이디에 딸린 닉네임을 바꿔주도록 하고 전체를 반복해서 아이디:닉네임을 저장하는 딕셔너리가 최종 구현이 되면 다시 전체 포문을 돌면서 명령에 맞는 문자열로 바꿔서 출력해주면 끝 정답코드 from col..
www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 문제유형 : 분할정복, 재귀 문제풀이 : 아이디어 생각 자체는 어렵지 않은데 구현에서 먼가 꼬여서 생각보다 오래품 주어진 종이크기를 4등분하는함수 / 주어진종이가 모두 0인가(흰색정사각형인가)를 판단하는 함수 / 반대로 파랑인지 확인함수 이렇게 3개의 함수를 구현하고 풀었다 정답코드 import sys input = sys.stdin.readline n = int(input()) #종..
https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net 문제유형 : 구현, 그래프탐색 (삼성기출) 문제풀이 BFS(DFS도 가능)를 통해 연합가능한 국가를 찾도록 한다. 전체국가를 돌면서 bfs로 연합가능한 국가의덩어리들을 찾고 각 덩어리들사이에서 인구이동을 진행한다. 모든칸(전체국가)을 돌았는데 인구이동이 한번도 없었다면 더이상 진행이 불가한것을 의미하므로 while문을 break하고 빠져나온다. 인구이동이 있었다면, 다시 visite..