본문 바로가기

분류 전체보기96

[프로그래머스] 네트워크 자바 문제 코딩테스트 연습 - 네트워크 네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있 programmers.co.kr 문제풀이 이 문제는 쉬워서 그런진 몰라도 DFS문제치고 굉장히 빨리 풀어서 기쁘다,,ㅎㅎ 컴퓨터로 주어지는 배열을 노드로 보고, 노드를 차례차례 방문하여 연결되어 있는 끝까지 가서 방문 여부를 표시하면 되기 때문에 이 문제도 DFS로 구현하면 된다. 처음 0번 노드부터 시작하여 연결된 노드(1표시)를 탐색하여 visted배열에 표시한다 (computers 열의 값 확인) 그리고 끊기면 visited배열 중에서 아직 방문안된(false표시인) 노드부터 .. 2021. 11. 19.
[프로그래머스] 타겟 넘버 자바 문제 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수가 있습니다. 이 수를 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+ programmers.co.kr 문제 풀이 DFS/BFS 문제를 풀고 싶어서 DFS카테고리에서 문제를 골랐는데, 아무리 생각해도 완전탐색으로 푸는 것 같았다. 그래서 찾아보니 DFS(또는 BFS)는 모든 노드를 탐색하는 것을 목표로 하는 완전탐색을 기반으로 한 탐색 기법이라고 나왔다. 아마 완전탐색을 구현하는 방법 중 하나로 DFS/BFS가 포함되어 있나보다..? 더하기, 빼기 연산밖에 하지 못하므로 주어진 숫자 배열에서 더할 숫자만 .. 2021. 11. 18.
[백준] 1260번 DFS와 BFS 자바 문제 (실버2) 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제 풀이 이 문제는 진짜 제목 그대로 DFS와 BFS를 직접 구현해보는 문제이다. 코딩테스트 연습을 하다보면 자주 접하게 되는 개념이지만, 어려워서 항상 코드를 보고 풀었다. 이번 기회에 DFS와 BFS개념을 확실히 다지고자 풀게되었다. 이번 기회에 개념 꼭 다지고 넘어가야지! 우선 DFS알고리즘은 깊이 우선 탐색으로 스택을 이용하는 방법과 재귀함수를 이용하는 방법 두가지가 있는데, 대부분 재귀함수를 이용하.. 2021. 11. 17.
[프로그래머스] 괄호 변환 자바 문제 https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제 풀이 문제에 제시된 변환 알고리즘을 하나씩 구현하다 보면 됨 소스 코드 class Solution { public static String solution(String p) { String u = "", v = ""; int a = 0, b = 0; String[] arr = p.split(""); if(p.equals("")) return ""; fo.. 2021. 11. 7.
[프로그래머스] 크레인 인형뽑기 게임 자바 문제 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 문제풀이 소스코드 import java.util.Stack; class Solution { public int solution(int[][] board, int[] moves) { int answer = 0; int board_top; Stack stack = new Stack(); for(int i = 0; i < moves.length; i++){ for(int j = 0; j < board.length; j++){ board_top = board[j][moves[i]-1]; b.. 2021. 11. 7.
[Python #5] Class, Module, Package Class : 클래스란 관련된 '속성'과 '동작'을 하나의 범주로 묶어 실세계의 사물을 흉내낸 것 - 객체지향의 가장 기본적인 개념이 클래스 - 스크립트 언어는 원래 가볍게 쓰는 것이 주목적이라 객체지향을 지원하는 경우가 드물지만 파이썬은 스크립트 언어임에도 클래스 정의, 연산자 오버로딩, 다중상속을 지원한다. (하지만 진짜 객체지향언어에 비해 형식성이 떨이지고 기능도 많이 부족) - 사물을 분석하여 필요한 속성과 동작을 추출 -> 모델링 - 모델링된 결과를 클래스로 포장하는 것 -> 캡슐화 - 아래 코드예제는 계좌라는 실세계의 사물(Object)를 표현하는 하나의 묶음 : 연관된 정보는 한 곳에 모여있어야 관리가 용이 balance = 8000# 잔액 def deposit(money):# 입출금 동작 .. 2021. 10. 31.