본문 바로가기

Algorithm/baekjoon4

[algorithm] 백준 1822 차집합 ◾문제 차집합 레벨: 실버4 유형: 자료구조 / 정렬 / 해시를 사용한 집합과 맵 / 트리를 사용한 집합과 맵 https://www.acmicpc.net/problem/1822 ◾풀이 TreeSet을 이용하여 풀이하였다. 문제이해 집합 A와 집합B가 주어질 때 집합 상 A - B인 차집합, 즉 A원소에서 B원소와 겹치는 부분을 제외한 부분을 구하는 문제이다. 아래와 같은 부분을 구하는 문제이다. TreeSet 사용하기 집합이므로 중복된 원소를 저장할 필요가 없으므로 Set을 이용하는 것을 생각하게 되었고, HashSet이 아닌 TreeSet을 사용하였다. 왜 TreeSet을 사용하였을까? 이유는 출력 조건에서 "구체적인 원소를 빈 칸을 사이에 두고 증가하는 순서로 출력한다" 라고 하였기 때문이다. Set.. 2024. 2. 11.
[algorithm] hash 백준17219 비밀번호 찾기 ◾문제 비밀번호 찾기 레벨: 실버4 유형: 해시 https://www.acmicpc.net/problem/17219 ◾풀이 해시에 대한 개념을 알고 있다면 어렵지 않게 풀 수 있는 문제이다. 문제이해 문제가 길지만 문제 길이에 비하여 풀이는 간단한 문제이다. 사이트와 비밀번호를 쌍으로 저장하고, 주어지는 사이트들에 대한 비밀번호를 출력하면 된다. HashMap 사용하기 문제에서 사이트 - 비밀번호라는 정보를 '쌍'으로 저장해두고, 사이트가 주어질 때 해당하는 비밀번호를 찾아 출력해주면 된다. 이는 Map을 활용하면 제격이다. Map인터페이스를 구현한 구현체인 hashMap을 활용하여 이 문제를 쉽게 풀 수 있다. Map선언하기 hshMap은 키(key)와 값(value)을 쌍으로 저장하는 자료구조이다. .. 2024. 2. 10.
[algorithm] BFS/DFS 백준1012 유기농배추 ◾문제 유기농 배추 레벨: 실버2 유형: BFS/DFS https://www.acmicpc.net/problem/1012 ◾풀이 전형적인 BFS/DFS 문제이다. 본 글에서는 bfs를 이용하여 풀이하였다. bfs 풀이가 어려운 분들을 위해 자세히 설명하려고 하였는데, 이해가 안 가는 부분이 있다면 댓글로 알려주세요 문제이해 배추는 상하좌우로 인접해 있고, 배추가 인접한 곳에서는 지렁이는 1마리만 필요하다. 즉 떨어져있는 배추들의 묶음이 전체에서 몇 개인지 세면 그것이 곧 필요한 지렁이의 개수가 된다. 배추 밭 배추밭 사이즈와, 배추를 입력 받을 때 주의해야할 것이 있는데 이 문제에서 가로의 길이M, 세로의 길이 N을 알려준다 2차원배열에서 첫번째 항목이 행, 두번째 항목이 열이기 때문에 (arr[row].. 2023. 12. 14.
[algorithm] 정렬 백준 11651 좌표 정렬하기2 ◾문제 좌표 정렬하기 2 레벨: 실버5 https://www.acmicpc.net/problem/11651 ◾풀이 Comparator를 이용한 정렬이 익숙하다면 어렵지 않게 풀 수 있는 문제이다. - 입력받기 N개의 x,y 좌표를 입력받으므로 입력받은 N을 기준으로, Nx2크기의 2차원 배열을 선언하여 입력받는다. int[][] arr = new int[N][2]; - 정렬하기 배열을 정렬하는 것이므로 'Arrays.sort() 를 이용한다.' 라고 생각할 수 있으나 이는 2차원 배열이므로 만일 정렬을 해야한다면 한 행씩 정렬을 해야한다. Arrays.sort()는 직접 2차원 배열을 정렬할 수 없기 때문이다. 그러나 일반적인 오름차순 정렬이 아니기 때문에, 문제에서 요구하는 방식으로 정렬을 해야하므로 .. 2023. 12. 12.

/* 내가 추가한 코드 */ /* 내가 추가한 코드 끝끝 */