전체 글

우아한테크코스/Level 1 | 정리

int와 Integer

💡 Intro 저번주 금요일에 졸업식을 가느라 우테코 수업에 참여하지 못했다. 여태까지 했던 수업들과는 좀 다르게 어려운 내용을 다루었던 것 같고 그 내용에 대해 크루들에게 자세하게 설명을 전해들었다. 그 중에서도 전 페어가(아크) 정리한 글의 내용이 한 번에 이해할 수 있을만큼 좋아서 그 내용을 참고하여 내가 이해한 방식으로 다시 정리해보려고 한다. ❓ 동등성(identity) 동일한 정보를 가지고 있는 오브젝트를 의미한다. 메모리 상에 다른 오브젝트가 존재하는 것이고, 오브젝트의 기준에 따라 동등하다고 판단한다. 자바에서 동등성을 비교하기 위해서는 == 이 아닌 .equals를 사용해야 한다. 하지만 코틀린에서 == 연산자는 내부적으로 .equals를 호출하기 때문에 코틀린에서 동등성을 비교하기 위해..

우아한테크코스/Level 1 | Mission

[우테코] 자동차 경주 - 온보딩 미션

💡 Intro 우테코를 시작한지 2주 정도 됐고 처음으로 글을 쓰는 것 같다. 하루에 왕복 네 시간씩 걸리는 통학을 하다보니 6시 이후로 공부하기도 공부의 흔적을 남기기도 쉽지 않다. 2주 됐는데 2달 된 것 같은 이 느낌. 짧은 시간이긴 하지만 배운 것도, 느낀 것도 많다. 시간 날때마다 작성해서 남겨봐야겠다. 🚗 자동차 경주 미션 가장 먼저 진행한 미션은 자동차 경주 미션이다. 프리코스를 진행하면서 들어갔던 스터디에서 프리코스가 끝난 이후에도 이전 미션들을 찾아보면서 준비했었는데 자동차 경주 미션도 그 중 하나였다. 그래서 요구사항이나 클래스를 구분하는 것이 굉장히 익숙했지만 그럼에도 불구하고 많은 피드백을 받았다. 우테코를 진행하면서 이전과 가장 달라진 점은 구현한 기능마다 단위 테스트를 한다는 것..

기타

[기타] Visual Studio에서 bits/stdc++.h 사용하기

알고리즘 문제를 풀고있는 요즘 바킹독 선생님의 영상과 문제 풀이를 많이 참고하고 있다. 바킹독 선생님의 풀이를 보면 include를 를 사용하여 한 번에 끝내신다. 여기에는 알고리즘 문제를 해결하기 위해 주로 사용하는 헤더들을 모두 include하고 있다. 이 헤더파일은 gcc 계열의 컴파일러에 미리 내장되어 있고, 그래서 대부분의 문제풀이 사이트에서 위 헤더파일을 사용할 수 있다. 하지만 윈도우 기반인 나는 visual studio를 사용하고, visual studio는 기본적으로 를 포함하고 있지 않기 때문에 따로 설정을 해줘야 한다. 그 전에 간단하게 장단점을 살펴보면 장점 자주 사용되는 라이브러리를 include 해주기 때문에 일일이 추가해야하는 번거로움이 적다. 단점 사용하지 않거나 불필요한 라..

Spring

[Spring] 인프런 스프링 입문 정리 #5

📡 회원관리예제 - 웹 MVC 개발 이제까지 만들어둔 코드를 바탕으로 웹 MVC를 기반으로 회원관리 예제를 만들어보도록 하자. 해야할 일은 다음과 같다. 회원 웹 기능 - 홈 화면 추가 회원 웹 기능 - 등록 회원 웹 기능 - 조회 1. 회원 웹 기능 - 홈 화면 추가 src/main/java/hello.hellospring/controller 아래 HomeController 파일을 하나 만들어주자. 코드는 다음과 같다. "/"는 localhost:8080으로 들어왔을 때의 첫 페이지를 의미한다. localhost:8080으로 들어왔을 때 home.html이 실행이 된다. 이를 위해 src/java/resources/templates 아래 home.html 파일을 생성하자. 코드는 아래와 같다. Hell..

C++ Programming/STL 사용법

[STL 사용법] map

💡 Map map은 각 노드가 key-value 쌍으로 이루어진 트리이며, 키의 중복을 허용하지 않는다는 점이 특징이다. map은 pair객체로 저장이 되고, first↔key, second↔value 이다. C++에서 map은 탐색, 삽입, 삭제가 모두 O(logN)에 이루어질 수 있는 레드블랙트리로 구현되어 있다. Map의 기본 형태 map m; Map의 정렬 map은 자료를 저장할 때 내부적으로 자동으로 정렬하는 특징을 가지고 있다. 이 때 기준은 key값이 되고 오름차순으로 정렬하게 된다. 내림차순으로 정렬하고 싶은경우 2가지 방법으로 할 수 있다. map map1; 처럼 선언할 때 세 번째 인자로 greater를 추가하는 방법 int데이터를 저장할 경우에만 해당되는 것인데 데이터를 음수화하여 저..

C++ Programming/STL 사용법

[STL 사용법] std::reverse

💡 Intro 코딩테스트를 C++로 준비하면서 익숙하지 않은 STL들의 사용법을 정리하려고 한다. 이번에는 string 문자열을 거꾸로 돌려주는 std::resverse 함수에 대해 알아보려고 한다. 💡 std::reverse std::reverse 함수 선언 template void reverse(const _BidIt _First, const _BidIt _Last) reverse elements in [_First, _Last) 와 같은 주석도 함께 달려있는데 first부터 last바로 전 인덱스까지의 요소들을 거꾸로 뒤집는 역할을 한다고 볼 수 있다. std::reverse 함수 정의 에서 중요한 부분을 떼오면 다음과 같다. void reverse(const _BidIt _First, const ..

C++ Programming/알고리즘

[알고리즘] Counting Sort

🐥 Counting Sort counting sort는 정렬 알고리즘 중 가장 간단한 알고리즘으로 볼 수 있다. 그냥 각 수가 나오는 횟수를 세고, 그 횟수만큼 출력해주면 되기 때문이다. 아래 그림을 보면 더 잘 이해가 될 것이다. 위와 같은 리스트가 있다고 가정하자. 리스트에서 값이 1부터 6까지 나오기 때문에 해당 값이 몇번 나왔는지 배열에 저장하고 오름차순으로 횟수만큼 출력해주면 정렬이 되는 것을 볼 수 있다. 💥 단점 counting sort를 사용하기 위해서는 각 수가 나온 횟수를 저장해줘야 한다. 이는 미리 큰 테이블을 만들어두고 대응되는 원소의 값을 증가시키는 방식으로 구현이 가능하다. 예를들어 만약 나오는 수가 1부터 999까지라고 하면 int freq[1000] 와 같이 선언하여 사용하면..

Spring

[Spring] 인프런 스프링 입문 정리 #4

🥔 스프링 빈과 의존관계 스프링 빈을 등록하는 2가지 방법 컴포넌트 스캔과 자동 의존관계 설정 자바 코드로 직접 스프링 빈 등록하기 컴포넌트 스캔과 자동 의존관계 설정 회원 컨트롤러가 회원서비스와 회원 레파지토리를 사용할 수 있도록 의존 관계를 준비하자. src/main/java/hello.hellospring/controller 하위에 MemberController파일을 만든다. MemberController package hello.hellospring.controller; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.spring..

Krrong
노는게 제일 좋아