전체 글(408)
-
(TIL) 20210723
📕Facts(한 것) 백준 문제 풀기 운동하기 코드숨 강의 복습하기 clean architecture 읽기 운영체제 교과서 읽기 📕Feeling(느낀 점) 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net BFS관련된 미로탐색 문제를 풀었다 단순 BFS가 아니라 살짝(?) 변형된 문제여서 어떻게 풀까 한참을 고민했고, 여러번의 시도 끝에 결국 문제를 해결했다. 이 문제도 나의 실력에 밑거름이 되었기를... 코드숨 강의를 복습하다보면 그때는 눈에 보이지 않았던 것들이 지금은 눈에 보이기 시작한다. TaskRespository에서 바로 CrudR..
2021.07.23 -
[알고리즘] 선택정렬, 삽입정렬 구현(C/C++)
📕 정렬 알고리즘 알고리즘 문제를 조금이라도 풀어봤다면, 정렬에 관한 문제가 많이 나오는 것을 알 수 있다. 정확히, 정렬을 활용해서 해결해야 하는 문제가 많이 출제된다.(기본 중의 기본) 데이터를 정렬하는 것은 효율적인 알고리즘에서의 중요한 단계로, 문제 해결을 효율적으로 할 수 있도록 도와준다. 우리는 정렬 알고리즘을 통해서 실수, 문자열, 파일 등을 손쉽게 정렬할 수 있게 된다. 이 문서에서는 정렬의 기본이라고 할 수 있는 선택 정렬과, 삽입 정렬을 다룰 예정이다. 📕 선택 정렬 선택 정렬은 가장 기본적인 알고리즘 중의 하나로, 사람이(보편적으로) 데이터를 보고 정렬하는 과정과 동일하다고 생각하면 편하다. 정렬 순서는 왼쪽에서 오른쪽으로 흘러가며, 최소값을 통해서 데이터의 대소 관계를 비교하고 교체..
2021.07.23 -
(TIL) 20210722
📕Facts(한 것) 백준 문제 풀기 운동하기 코드숨 강의 복습하기 clean architecture 읽기 패스트 캠퍼스 운영체제 강의 듣기 📕Feeling(느낀 점) 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 처음 시도에는 50프로에서 시간초과가 발생했다. C++의 reverse() 함수가 그 이유였는데, 이 문제를 해결하니 50프로에서 틀렸다. (왜...) 게시판을 뒤져 겨우 반례를 발견했고, 결국 문제를 해결했다. (1시간을 넘게 붙잡고 있어서 현타가...) 클린 아키텍쳐에 이런 구절이 있다. ‘Function or architecture? Which o..
2021.07.23 -
(TIL) 20210721
📕Facts(한 것) 백준 문제 풀기 운동하기 자바 네트워크 프로그래밍 읽기 코드숨 강의 복습하기 clean architecture 읽기 📕Feeling(느낀 점) 코드숨 강의를 복습하면서 , 를 읽을 필요가 있을거 같아서 책을 다운 받아 읽기 시작했다. 이 책의 핵심은 소프트웨어 아키텍쳐의 중요성을 얘기하는 것 같다. 그럼 왜 소프트웨어 아키텍쳐가 중요할까? 책에서는 소프트웨어 아키텍쳐의 목표를 다음과 같이 설명하고 있다. "The goal of software architecture is to minimize the human resources required to build and maintain the required sytem." 바로 이어지는 내용이 시대가 변함에 따라서 코드 한 줄을 추가하는..
2021.07.22 -
#1697 백준 숨바꼭질 코드 C++
1697번: 숨바꼭질 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 백준 1697번 숨바꼭질 문제이다. 백준에는 숨바꼭질 시리즈의 문제가 많은데, 이전 문제는 그리디, DP등 다양한 알고리즘으로 해결이 가능했다. 이 문제 역시 여러 해결 방안이 있지만 타겟 알고리즘은 너비우선탐색(BFS)이다. 문제에서 주어진 예시를 보면 수빈이의 위치는 5이고 동생의 위치는 17이다. 수빈이는 1초후에 위치-1, 위치+1, 위치*2 의 위치로 이동할 수 있다. 5의 경우, 4, 6, 10 으로 이동할 수 있는 것이다...
2021.07.20 -
#7662 백준 이중 우선순위 큐 C++
백준 7662 번 이중 우선순위 큐 문제이다. 우선순위 큐의 성질을 문제에 적용시킨 것인데, 우선순위 큐와 다른 것은 가장 큰 값과, 가장 작은 값이 모두 손쉽게 삭제가 가능 하다는 점이다. 이 문제에서 주어지는 k값의 범위가 10000정도만 되어도 list를 고려해 볼 수 있었지만, 범위가 넓은 관계로 다른 컨테이너를 사용해야한다. 여기서 사용할 수 있는 컨테이너는 map과 multiset을 사용할 수 있다. map을 사용하면, 첫 번째 인자는 값 자체를 넣어주고, 두 번째 인자는 값의 개수로 설정해서 동일한 key값이 삭제될 경우 두 번째 인자의 값을 줄이는 식의 풀이를 할 수 있다. multiset을 사용하면 key값의 개수를 일일이 줄여줄 필요가 없기 때문에 map으로 구현하는 것 보다 쉽게 구현..
2021.07.20