[4] 백준 플래티넘 달성 2024년 04월 23일 (화요일) 백준 솔브드 기준 플래티넘 티어를 달성했다. 사실 달성 자체는 4월 2일에 했지만 블로그에 일기도 오랫동안 안 쓴 겸 올려본다. 싸피에 입과해서 약 4개월 정도 지났다. 자바 스프링으로 언어를 바꿔서 다시 도전하면서 알고리즘 문제도 꾸준히 풀었다. 그동안 ADsP도 따고, 정처기 필기도 합격하면서 플래티넘 말고도 다른 성과도 얻었다. 현재는 정처기 실기를 준비하고 있다. 얼마 남지 않았으니 더 열심히 해야지 프로그래밍/일기 2024.04.23
[정처기 실기] 소프트웨어 설계 - (1) 요구사항 확인1 Part1. 소프트웨어 설계 소프트웨어 설계 혹은 소프트웨어 디자인은 소프트웨어 문제 해결과 계획 과정이다. 1. 요구사항 확인 1 001. 소프트웨어 생명 주기 (Software Life Cycle) 소프트웨어 생명 주기(Software Life Cycle)은 소프트웨어를 개발하기 위한 설계, 운용, 유지보수 등의 과정을 각 단계별로 나눈 것이다. 소프트웨어 기획부터 설계, 운용, 유지보수까지를 일련의 주기로 보고 이를 효과적으로 설계하기 위한 것이다. ex > 폭포수 모델, 프로토타입 모델, 나선형 모델, 애자일 모델, ... 002. 폭포수 모델 (Waterfall Model) 폭포수 모델은 이전 단계로 돌아갈 수 없다는 전제 하에 각 단계를 확실히 매듭 짓고 그 결과를 철저하게 검토해 승인 과정을.. 정보처리기사 2024.04.23
[Data Structure] NonLinear - (3) Graph - 기본 개념 그래프(Graph) 그래프는 어떤 개념들 간의 연결관계를 표현하기 위해 사용하는 자료구조다. '개념들 간의 연결관계'라는 말이 모호하기 때문에 그 관계의 예를 몇 가지 들면, 사람과 사람 간의 관계, 도시와 도시와 연결된 도로들의 관계, 네트워크에서 A컴퓨터, B컴퓨터, C컴퓨터, ... 들 간의 관계 등이다. 즉, 그래프 자료구조에서 주로 포커싱되는 대상은 관계이며, 현실세계나 추상적인 개념의 문제들을 그래프 구조로 맵핑시키고 난 뒤에는 그 관계들을 이용해 다양한 알고리즘을 적용해 문제들을 해결할 수 있다. 1) 기본 개념 자료구조로서 그래프는, 위의 설명에서 개념에 대응하는 정점(Vertex; 노드(Node) - 컴퓨터 과학에서는 주로 노드를 씀)과 관계에 대응되는 간선(Edge)으로 이루어진다. 개.. 프로그래밍/Computer Science 2024.04.03
[3] 삼성 SSAFY 11기 서울 지역 합격 2023년 12월 21일 (목요일) 인생 두번째 부트캠프 싸피에 합격했다. 앞으로 1년 간 잘 부탁해! 싸피 선발 과정은 스케줄이 제대로 안나와 있어서 조금 답답했지만 어쨌든 합격시켜 줬으니 상관없음 프로그래밍/일기 2023.12.21
[Java] JDK 부수기 - (3) java.lang.Math java.util.Math The class Math contains methods for performing basic numeric operations such as the elementary exponential, logarithm, square root, and trigonometric functions. Unlike some of the numeric methods of class StrictMath, all implementations of the equivalent functions of class Math are not defined to return the bit-for-bit same results. This relaxation permits better-performing implem.. 프로그래밍/Java 2023.12.20
[백준] 1260. DFS와 BFS 문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 같은 그래프를 DFS와 BFS로 출력하는 문제. 깊이우선탐색과 너비우선탐색의 기본을 다질 수 있는 문제다. 전략 01. Node 클래스 그래프의 노드 데이터들을 담을 Node 클래스를 생성한 뒤에 DFS와 BFS를 수행하는 방법. Node 클래스에는 정점 번호 데이터, 해당 노드와 연결된 노드, 방문 여부에 대한 정보가 들어가면 된다. 그럼 해당 노드를 .. 프로그래밍/문제풀이 2023.12.19
[백준] 11866. 요세푸스 문제 0 문제 https://www.acmicpc.net/problem/11866 11866번: 요세푸스 문제 0 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000) www.acmicpc.net 1부터 N까지의 사람이 원을 그리고 앉아 있을 때 K번째 사람을 순서대로 뽑는 문제 전략 01. LinkedList 처음 생각한 풀이는 사람이 순서대로 앉아 있기 때문에 Singly Linked List로 풀 수 있지 않을까였다. 인덱스를 K만큼 증가시켜가며 뽑은 뒤 범위는 넘는다면 N로 나눈 나머지를 다시 인덱스로 함으로서 범위 내에서 계속 돌도록 유지할 수 있다. 결과적으로는 원을 그리고 있기 때문에 Circular Linked List나 다른 방법이 더 쉬운 방법이었지만.. 프로그래밍/문제풀이 2023.12.18
[백준] 1012. 유기농 배추 문제 https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net 전형적인 DFS(Depth-First Search) 문제다. 상하좌우로 인접한 1인 셀들은 배추흰지렁이가 모두 왕래할 수 있으므로 1개로 쳐야한다. 전략 01. DFS 땅을 순회하면서 값이 1이고, 아직 방문하지 않은 땅을 발견한다면 그 지점부터 상하좌우를 확인해 주변의 땅 중 1이면서 아직 방문하지 않은 땅들을 재귀적으로 모두 방문처리한다. 이때 카운트를 1 올려주면 한 덩어리인 땅을 하나로 칠 수 있.. 프로그래밍/문제풀이 2023.12.16
[Java] JDK 부수기 - (4) java.lang.ClassLoader java.lang.ClassLoader A class loader is an object that is responsible for loading classes. The class ClassLoader is an abstract class. Given the binary name of a class, a class loader should attempt to locate or generate data that constitutes a definition for the class. A typical strategy is to transform the name into a file name and then read a "class file" of that name from a file system. 클래스 .. 프로그래밍/Java 2023.12.13
[Java] JDK 부수기 - (3) java.lang.Class java.lang.Class Instances of the class Class represent classes and interfaces in a running Java application. An enum class and a record class are kinds of class; an annotation interface is a kind of interface. Every array also belongs to a class that is reflected as a Class object that is shared by all arrays with the same element type and number of dimensions. The primitive Java types (boolean,.. 프로그래밍/Java 2023.12.04