본문 바로가기

전체 글108

[1일1문제] 백준 24445번: 알고리즘 수업 - 너비 우선 탐색 2 문제 오늘도 서준이는 너비 우선 탐색(BFS) 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 정점과 M개의 간선으로 구성된 무방향 그래프(undirected graph)가 주어진다. 정점 번호는 1번부터 N번이고 모든 간선의 가중치는 1이다. 정점 R에서 시작하여 너비 우선 탐색으로 노드를 방문할 경우 노드의 방문 순서를 출력하자. 너비 우선 탐색 의사 코드는 다음과 같다. 인접 정점은 내림차순으로 방문한다. bfs(V, E, R) { # V : 정점 집합, E : 간선 집합, R : 시작 정점 for each v ∈ V - {R} visited[v] 2023. 9. 4.
[1일1문제] 백준 2210번: 숫자판 점프 문제 5×5 크기의 숫자판이 있다. 각각의 칸에는 숫자(digit, 0부터 9까지)가 적혀 있다. 이 숫자판의 임의의 위치에서 시작해서, 인접해 있는 네 방향으로 다섯 번 이동하면서, 각 칸에 적혀있는 숫자를 차례로 붙이면 6자리의 수가 된다. 이동을 할 때에는 한 번 거쳤던 칸을 다시 거쳐도 되며, 0으로 시작하는 000123과 같은 수로 만들 수 있다. 숫자판이 주어졌을 때, 만들 수 있는 서로 다른 여섯 자리의 수들의 개수를 구하는 프로그램을 작성하시오. 입력 다섯 개의 줄에 다섯 개의 정수로 숫자판이 주어진다. 출력 첫째 줄에 만들 수 있는 수들의 개수를 출력한다. 풀이 이론으로 공부만 하다가 처음 푸는 dsf 문제여서 그런지 생각보다 어렵고 감도 안 잡힌다. 일단 풀이를 보고 이해해야겠다. 참고.. 2023. 9. 3.
[1일1문제] 백준 10773번: 제로 문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,000,000 사이의 값을 가지며, 정수가 "0" 일 경우에는 가장 최근에 쓴 수를 지우고, 아닐 경우 해당 수를 쓴다. 정수가 "0"일 경우에 지울 수 있는 수가 있음을 보장할.. 2023. 9. 2.
[이코테] chapter06 정렬 아래 글은 [이것이 코딩 테스트다 wiht 파이썬] 책을 기반하여 작성한 글입니다. 정렬 : 연속된 데이터를 기준에 따라서 정렬하기 위한 알고리즘 (1) 배경 지식 정렬이란 데이터를 특정한 기준에 따라서 순서대로 나열하는 것이다. 정렬은 다음 챕터에서 배울 이진 탐색의 전처리 과정이니 잘 알고 넘어가는 것이 중요하다. 정렬에는 종류가 매우 다양한데 이 장에서는 선택, 삽입, 퀵, 계수 정렬에 대해서만 다루겠다. 아래는 모두 무작위의 데이터를 오름차순으로 정렬하는 예제를 다룬다. (2) 선택 정렬(Selection Sort) : 가장 작은 것을 선택해, 정렬되지 않은 부분의 맨 앞에 두는 알고리즘 1️⃣예제 (1) 7 5 9 0 3 1 6 2 4 8 (2) 0 5 9 7 3 1 6 2 4 8 (3) 0 1.. 2023. 8. 17.
[Spring] chapter12 애플리케이션 만들기(애플리케이션 레이어) 아래 글은 스프링 프레임 워크 첫걸음 책을 기반하여 작성한 글입니다. 드디어!! 이 책의 마지막 챕터이다! 12-1 애플리케이션 레이어 (1) 작성할 내용 확인 No 레이어 컴포턴트 이름 비고 1 애플리케이션 레이어 View - 화면 표시 2 애플리케이션 레이어 Controller Quizcontroller 제어 역할 담당 3 애플리케이션 레이어 Form QuizForm 화면의 게임 폼을 표현 4 도메인 레이어 Service QuizService 인터페이스로 생성 5 도메인 레이어 ServiceImpl QuizServiceImpl Service를 구현 6 도메인 레이어 도메인 객체 Quiz 엔티티 역할 7 도메인 레이어 Repository QuizRepository 인터페이스로 생성 8 인프라스트럭처 레.. 2023. 8. 8.
[Spring] chapter11 애플리케이션 만들기(비즈니스 로직 처리) 아래 글은 스프링 프레임 워크 첫걸음 책을 기반하여 작성한 글입니다. 11-1 비즈니스 로직의 처리 내용 확인과 작성 (1) 작성할 내용 확인 No 레이어 컴포턴트 이름 비고 1 애플리케이션 레이어 View - 화면 표시 2 애플리케이션 레이어 Controller Quizcontroller 제어 역할 담당 3 애플리케이션 레이어 Form QuizForm 화면의 게임 폼을 표현 4 도메인 레이어 Service QuizService 인터페이스로 생성 5 도메인 레이어 ServiceImpl QuizServiceImpl Service를 구현 6 도메인 레이어 도메인 객체 Quiz 엔티티 역할 7 도메인 레이어 Repository QuizRepository 인터페이스로 생성 8 인프라스트럭처 레이어 Reposit.. 2023. 8. 7.
[Spring] chapter10 애플리케이션 만들기(데이터베이스 조작) 아래 글은 스프링 프레임 워크 첫걸음 책을 기반하여 작성한 글입니다. 10-1 애플리케이션 만들기(데이터베이스 조작) (1) 작성할 내용 확인 No 레이어 컴포턴트 이름 비고 1 애플리케이션 레이어 View - 화면 표시 2 애플리케이션 레이어 Controller Quizcontroller 제어 역할 담당 3 애플리케이션 레이어 Form QuizForm 화면의 게임 폼을 표현 4 도메인 레이어 Service QuizService 인터페이스로 생성 5 도메인 레이어 ServiceImpl QuizServiceImpl Service를 구현 6 도메인 레이어 도메인 객체 Quiz 엔티티 역할 7 도메인 레이어 Repository QuizRepository 인터페이스로 생성 8 인프라스트럭처 레이어 Reposit.. 2023. 8. 3.