전체 글 495

백준 2178번 미로 탐색 파이썬 풀이

백준 2178번 미로 탐색 파이썬 풀이 문제 N×M크기의 배열로 표현되는 미로가 있다. 1 0 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 1 0 1 1 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다. 위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 정답 코드 #미로 탐색 from collections import deque N,M = map(int,input(..

CS/알고리즘 2022.03.27

백준 1012번 유기농 배추 파이썬 풀이

백준 1012번 유기농 배추 파이썬 풀이 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것이다. 한나가 배추를 재배하는 땅은 고르지 못해서 배추를 군데군데 심어 놓았다. 배추들이 모여있는 곳에는 배추흰지렁이가 한 마리만 있으..

CS/알고리즘 2022.03.26

백준 2667번 단지번호붙이기 파이썬 풀이

문제 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니다. 는 을 단지별로 번호를 붙인 것이다. 지도를 입력하여 단지수를 출력하고, 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력하는 프로그램을 작성하시오. 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 정답 코드1 n = int(input()) graph = ..

CS/알고리즘 2022.03.24

좋은 객체 지향 프로그래밍이란(feat.배달의 민족 김영한)

안드로이드 어플을 자바로 개발하기도 해보고, 백엔드 공부를 위해 자바 스프링을 잠깐 다뤄도 보았다. 그러나 아직 객체 지향이 정확히 무엇인지.. 명확한 느낌이 오지 않는 상태에서 이것저것 공부해보다가 찾게 된 김영한님의 유투브 영상. 이 영상을 보고 오늘 다시 객체 지향이란 무엇인지 정리해보아야겠다는 생각이 들었다. 객체 지향 프로그래밍 - 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메세지를 주고받고, 데이터를 처리할 수 있다.(협력) -객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용 됨. 다형성 역할과 구현으로 세상을 구분 K3,아반떼,테슬..

IT 2022.03.24

[Android java] navigation component animation 하는 방법

navigation component animation 하는 방법 예제를 만들 때 Bottom Navigation Activity를 사용하였습니다. 1.Bottom Navigation Activity 생성하기 2)res 에 anim 폴더에 fade_in , fade_out 만들기 (fade_in도 xml인데 버그 나서 저런 모양이니 무시하시고 xml이라고 생각하시면 됩니다.) fade in.xml 코드 3)animation을 넣고 싶은 fragment에 다음과 같은 코드를 넣습니다. 1. NavOptions 만들기 2.navigate 메소드에 옵션 주기 btnDashBoard = root.findViewById(R.id.to_dash_board); btnNotification = root.findView..

[자료구조] 해시맵(Hash Map) 정리 및 구현하기

[자료구조] 해시맵(Hash Map) 해시 목차 1. 해시맵 2. 해시와 해시 함수 3. capacity & load factor 4. 구현 해시맵(Hash Map) 개념 맵이란 것은 키(Key) 와 값(Value) 두 쌍으로 데이터를 보관하는 자료구조. (키는 맵에 오직 유일하게 있어야함 ,값은 중복 상관 X). 키와 값을 매핑하기 위해 해시라는 것을 사용한다. 한편,HashMap은 HashTable과 달리 보조 해시 함수(Additional Hash Function)를 사용하기 때문에 보조 해시 함수를 사용하지 않는 HashTable에 비하여 해시 충돌(hash collision)이 덜 발생할 수 있어 상대적으로 성능상 이점이 있다. (해시 테이블과의 비교는 사실 의미 없음) 특징 java 8 Has..

CS/자료구조 2022.03.20

[Java] JDBC 템플릿 공부

김영한 선생님의 인프런 강좌로 java spring을 공부하고 있다. 따라하니까 구현도 금방금방되고 좋다. 그러나 코드가 내부적으로 정확히 어떤 동작을 하는지 그 원리에 대해 궁금해지기 시작해서 공부해보려고 한다. JDBC 템플릿이란? - jdbc와 마찬가지로 데이터를 저장하기 위해 도와주는 API. 다른 점은 SQL Mapper. - 스프링의 가장 기본적인 Data Acess 템플릿으로 쿼리 기반으로 데이터 베이스에 접근 가능 - 모든 영속성 프레임 워크는 내부적으로 JDBC API를 이용 - DAO 계층에서 Jdbc Template API를 사용 - 제네릭을 사용해 어떤 값이 오든 그대로 반환 (*SQL Mapper: SQL을 직접 작성하고 Object필드를 매핑하여 데이터를 객체화 하는 것) 초기화..

백준 14888번 연산자 끼워넣기 파이썬 풀이

문제 N개의 수로 이루어진 수열 A1, A2, ..., AN이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 60가지의 식을 만들 수 있다. 예를 들어, 아래와 같은 식을 만들 수 있다. ~이하 생략 N개의 수와 N-1개의 연산자가 주어졌을 때, 만들 수 있는 식의 결과가 최대인 것과 최소인 것을..

CS/알고리즘 2022.03.15

백준 2580번 스도쿠 파이썬 풀이

문제 스도쿠는 18세기 스위스 수학자가 만든 '라틴 사각형'이랑 퍼즐에서 유래한 것으로 현재 많은 인기를 누리고 있다. 이 게임은 아래 그림과 같이 가로, 세로 각각 9개씩 총 81개의 작은 칸으로 이루어진 정사각형 판 위에서 이뤄지는데, 게임 시작 전 일부 칸에는 1부터 9까지의 숫자 중 하나가 쓰여 있다. 나머지 빈 칸을 채우는 방식은 다음과 같다. ~ 이하 생략 게임 시작 전 스도쿠 판에 쓰여 있는 숫자들의 정보가 주어질 때 모든 빈 칸이 채워진 최종 모습을 출력하는 프로그램을 작성하시오. 정답 코드 #스도쿠 import sys sdoku = [] blank = [] for i in range(9): sdoku.append(list(map(int,sys.stdin.readline().rstrip()..

CS/알고리즘 2022.03.14

[java spring] Database "C:/~/test" not found, either pre-create~~ 에러 해결

해결 과정 1. url 창을 localhost로 바꿔라 --> 실패 2. 8082 포트가 사용중일수도 있으므로 cmd 창에서 강제로 제거 후 시도 --> 실패 3.껐다 켜기 시도 --> 실패 성공 4. 윈도우 시스템 트레이 아이콘 클릭 후 나온 창에서 시도 -> 성공!!!! 실행성공화면! 여러분들은 localhost 부터 쭉 다 해보시면 될 것같습니다!