목록전체 (275)
컴굥일지
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12981 문제 내용 n명의 사람이 번갈아가며 끝말잇기를 한다. 우리가 구해야 하는 것은 가장 먼저 탈락한 사람의 번호와 몇 번째 차례에 탈락했는지이다. (몇 번째 라운드였는지) 만약 탈락자가 없다면 [0,0]을 반환하면 되고, 탈락의 기준은 아래와 같다. 1. 앞 사람이 말한 단어의 마지막 글자로 시작하지 않는 경우 2. 이미 앞에 나온 단어를 말한 경우 문제 풀이 단순히 반복문을 돌며 탈락 조건에 해당하는지 파악하면 되는 구현 문제이다. 반복문이 끝날 때까지 탈락 조건에 걸리는 경우가 없으면, 탈락자가 없다는 뜻이므로 [0,0]을 반환하면 된다. 탈락 조건 중 2번(이미 앞에 나온 단어를 말한..
vector vector container란? C++의 vector는 C++ 표준 라이브러리(Standard Template Library)에 있는 container이다. vector는 원소를 순서대로 보관하는 Sequence Container에 해당하는데, 배열과 달리 동적이기 때문에 자동으로 메모리가 할당되는 배열이라고 생각하면 된다. vector를 생성하면 heap 영역에 생성된다. 기본적으로 맨 뒤에서 원소의 삽입/삭제가 이루어진다. 중간에 값을 삽입하거나 삭제할 수도 있지만, 배열 기반이기 때문에 삽입/삭제가 일어난다면 비효율적이다.(이 경우 linked list를 쓰는게 낫다.) 헤더 아래의 헤더를 추가하면 vector를 사용할 수 있다. #include 선언 & 초기화 //int형 벡터 생성..
git stash는 변경사항을 임시로 저장할 수 있게 하는 git 명령어이다. 여러 가지 일을 병행하게 될 때, 브랜치 여러 개를 동시에 만든 상태에서 서로 왔다 갔다 할 일이 몇 번 있었다. 이때마다 git commit을 하기에는 아직 완성하지 못했거나, 커밋을 하기엔 너무 사소한 경우가 많았다. 물론 git commit 후에 git reset을 하는 방법도 있지만, 이건 너무 번거로우니 패스 그래서 이번 기회에 git stash를 사용 방법을 알아보았다. git stash 가장 기본적인 명령어이다. 현재 변경사항을 임시로 저장할 수 있다. (저장 후 브랜치를 바꾸어도 문제가 없으며, 다른 브랜치에서도 저장 내역을 불러올 수 있다.) 단, stash는 기본적으로 Modified이면서 Tracked 상태..
git 계정이 하나인 경우도 있지만, 회사를 다니거나 다른 이유로 인해 git 계정이 여러 개일 수 있다. 나의 경우 회사 노트북으로 개인 git 계정을 드물지만 가끔 사용해야 하는 일이 발생했다. ssh 설정을 하기엔 익숙하지도 않고 귀찮아서, 레포지토리 별로 git config를 설정해줬다. git에서 커밋을 할 때는 이름과 이메일을 기록하게 된다. git config --global 위 커맨드를 사용하면, 전역적으로 이름과 이메일을 세팅해 둘 수 있다. # 마지막 인자로 자신의 정보를 입력하면 된다. git config --global user.name "dooli1234" git config --global user.email dooli1234@gmail.com git config 위 커맨드를 사..
회사 코드를 보다보니 .ejs 파일이 있었다. 회사의 프로젝트가 리액트가 나오기 전에 만들어졌기 때문에, 바닐라 js, 클래스형 react, 함수형 react가 모두 섞여있다. 이슈들 처리하면서 .ejs 쪽은 볼일이 없었는데, 이번에 새로 맡은 이슈를 처리하려면 .ejs에 대한 이해가 좀 필요할 것 같아서 이번 기회에 찾아보았다. ejs란 Embedded Javascript Template의 약자로, 자바스크립트가 내장되어 있는 html 파일이다. ejs 공식 문서 일단 이 위의 링크는 ejs 공식 문서이다. 사용법이 깔끔하게 적혀있으니 읽어보면 좋을 것 같다. 특징 ejs는 html 태그처럼 자바스크립트 내용을 삽입할 수 있다. 일반 html 파일은 태그를 사용해서 javascript를 사용하지만, e..
.ts파일과 .tsx 파일은 어떤 차이가 있을까? 인턴으로 회사를 다니면서 개발을 하다보니 .ts 파일과 .tsx 파일이 모두 있는 것을 보았다. 둘 모두 타입스크립트 코드인 것은 알겠는데 어떤 차이가 있는지 몰라서 이번 기회에 알아보았다. 결론부터 말하자면 .ts는 순수한 typescript 파일이고, .tsx에서는 JSX 문법을 사용할 수 있다. 1. ts 순수 typescript 파일일 때 .ts를 쓰면 된다. 확장자가 .ts인데 JSX 문법을 사용하면 에러가 발생한다. 2. tsx React에서 UI를 구성할 때 쓰는 typescript이다. JSX 문법을 사용하려면 .tsx 파일이어야 한다. 하지만 .ts 파일에서와 달리 를 통한 type assertion을 사용할 수 없다. (as를 사용하는 ..
코틀린 기초 더 배우기 배열 한 개의 변수에 여러 가지 데이터를 저장 fun main() { val numbers:IntArray = intArrayOf(1,2,3,4,5,6) val numbers2= intArrayOf(1,2,3,4,5,6) //타입 추론 val numbers3= arrayOf(1,2,3,4,5,6) //이렇게만 써도 됨 println(numbers3) // 배열의 주소가 출력된다. print(numbers3.contentToString()) // 내용을 스트링으로 바꾸어준다 println() for (element in numbers3){ print("${element+2} ") //이런다고 number3가 바뀌진 않는다 } println() println(numbers3[0]) /..
코틀린 객체 지향 프로그래밍 기초 OOP 소개 OOP : Object Oriented Programming ex) Java, C#, Kotlin... 5가지 기본 개념 변수와 타입 변수 : 저장 공간에서의 위치 (저장 공간을 나타내기 위해 고유의 이름이 필요 -> 이름으로 데이터에 접근) 흐름 제어 함수 코드를 분리해준다. 코드를 필요할 때 불러 쓸 수 있다. => 재사용이 쉽다 colletions 많은 요소를 한 군데에 저장해준다. 반복을 쉽게 사용할 수 있게 해준다. (상속을 포함한) 클래스와 객체 직접 데이터 타입을 만들게 해준다. 데이터 멤버와 메소드를 한 곳에 있게 해준다. 가독성있고 유지 가능한 코드를 쓸 수 있게 해준다. 클래스와 객체 클래스 != 객체 클래스 : 속성와 기술을 정의해주는 도..
코틀린 기초 안드로이드 스튜디오 실행 : ctrl + shift + F10 안드로이드 스튜디오 자동 정렬 : ctrl + alt + L 변수 그리고 val과 var의 차이점 앱 실행 시간 동안 정보 저장 방법에 가장 기본인 코드 // fun : 함수를 만드는 키워드 fun main() { // main() 앱 시작점을 알려주는 특별한 함수(그래서 왼족에 스타트버튼이 존재한다) // body에 실행하고 싶은 코드를 넣음 // var는 수정이 가능하다. => 변수(mutable variable) var myName = "Jini" myName="Kari" print("Hello " + myName) //출력 // val은 나중에 값을 바꿀 수 없다. => 상수(immutable variable) val my..
대망의 프로젝트 마지막 날이 되었다. 첫날과 다른 장소에 모이게 되었지만, 집에서 약간은 더 가까워졌기 때문에 오히려 좋았다. 새벽까지 ppt를 만들고 발표 대본을 쓰느라 2시간 자고 서울을 나가야 했다. 도착해보니 다른 팀원들도 거의 밤을 새다시피 하고 왔더라 ㅎㅎ 5주간의 프로젝트를 마치고, 모든 팀이 자신들의 결과물을 보여주는 발표가 진행됐다. 당연하게도 4주차 발표때보다 다들 많이 발전해서 왔다. 우리 팀은 마지막에서 두번째로 발표했는데, 그래서 그런지 더 많이 떨렸던 것 같다. 발표에 반응형 화면을 보여주기 위해 gif도 넣고, 전반적인 흐름을 보여주기 위해 시연영상도 넣었는데, 이 결정이 우리 팀의 결과물을 효과적으로 보여주는 것 같아서 좋았다. 발표 자료 링크: https://www.canv..