https://www.acmicpc.net/problem/17822 난이도를 확 높인 골2 구현 문제다. 나름 유명한 문제고, 이전에도 문제 찾다가 종종 본 적이 있었는데 딱 봐도 귀찮아서 안했었다.근데 오랜만에 잡으니까 근자감으로 이 정도는 껌일 것 같아서 시도 했더니 껌이었다ㅋ 우선 원판 회전을 위해 배열 대신 벡터를 사용했다.방향을 주의하여 한쪽 끝의 값을 저장하고 삭제한 뒤 반대쪽 끝에 값을 삽입했다. 이후 이웃한 값이 같은 값인지를 판단해야 한다.간단하게 머리로 시뮬레이션을 돌려봤더니 밖에서부터 하든 안에서부터 하든 문제가 발생했다.예를 들면 원판의 값이 1 1 1인 경우 처음 두 개의 1 1 이 같아 0 0 1로 바꿔버리면 마지막 1은 같은데도 불구하고 무시된다. 그래서 찾은 방법은 원 배열은..
전체 글
GIthub - https://github.com/abbiddohttps://www.acmicpc.net/problem/1283 몸풀기로 실버 문제를 한 문제 더 풀었다. 문자열, 구현 문제다.분명 어려워 보이지는 않는데 C++ 문자열은 split도 안되고 문자열 전체의 대소 변경도 안되는 관계로 조금 까다로웠다. 우선 입력 받는 문자열에 공백이 포함되므로 getline을 이용해서 입력을 받는다.(getline은 쓸 때마다 헷갈려서 찾아봤는데 이번 학기에 타 과 C++ 수업 또 들으면서 확실히 익숙해졌다.)다른 언어들이면 split을 이용해서 공백으로 구분을 했을텐데 C++은 그런게 존재하지 않기에 반복문을 돌렸다.1. 첫 글자가 단축키로 지정되었는지 확인2. 이전 글자가 공백인 글자가 단축키로 지정되었는지 순차적으로 확인 3. 별다른 조건 없이 옵션에 포함된 글자..
https://www.acmicpc.net/problem/1138 사실 이렇게 빨리 다시 코테 블로그를 작성하게 될 줄은 몰랐다.오랜만에 하니 역시나 재밌고, 코드를 더더더더더 간결하게 작성하고 싶어진다. 구현 문제다.나를 기준으로 왼쪽에 자신보다 큰 사람이 몇 명인지 순차적으로 입력이 들어온다.이와 비슷한 고난도 문제들에서는 자신보다 큰 거나 작은 것이 아닌 그들끼리도 관계를 가진다.그러나 이 문제는 나와의 관계만 파악하므로 쉽게 해결할 수 있었다. 입력의 크기가 굉장히 작기 때문에 효율적인 방법을 생각하지 않아도 해결할 수 있다. 작은 사람부터 배치할 것이기에 이후에 위치하는 사람들은 나보다 큰 사람이다.따라서 1번부터 n-2번 까지는 왼쪽에서 부터 i+1번째 빈 칸에 위치하면 된다.n-2번 까지 위..
선형 회귀- x: 다른 변수의 값을 변하게 하는 변수 - 독립 변수- y: x에 의해 값이 종속적으로 변하는 변수 - 종속 변수 선형 회귀는 한 개 이상의 독립 변수 x와 종속 변수 y의 선형 관계를 모델링한다. 단순 선형 회귀 분석y = wx + b위 수식은 단순 선형 회귀의 수식이다.독립 변수 x와 곱해지는 값 w를 머신 러닝에서는 가중치, 별도로 더해지는 값 b를 편향이라고 한다.각각 직선의 기울기와 절편을 의미한다. 다중 선형 회귀 분석y = w1x1 + w2x2 + w3x3 + ... + wnxn + b부동산 가격, 주가 예측은 한가지 요소에만 영향을 받지 않는다.이런 다수의 요소를 가지고 예측을 하고 싶은 경우 y는 하나이지만 x는 여러 개가 된다. 비용 함수선형 회귀에서 궁극적으로 해애하는 ..
분류와 회귀분류분류의 대표적인 방법은 로지스틱 회귀가 있다.이진 분류이진 분류는 입력에 대해 두 개의 선택지 중 하나의 답을 선택해야 하는 경우다. ex) 성적의 합격, 불합격 / 메일의 스팸 유무 등 다중 클래스 분류다중 클래스 분류는 입력에 대해 세 개 이상의 선택지 중 하나의 답을 선택해야 하는 경우다.ex) 서점의 카테고리가 과학, 영어, IT, 만화 등이 있고, 이 때 새로운 책의 카테고리를 선택하는 경우 회귀회귀의 대표적인 방법은 선형 회귀가 있다. 회귀는 연속적인 값의 범위 내에서 예측값이 나오는 경우다.ex) 부동산 가격 예측, 주가 예측 등 지도 학습과 비지도 학습지도 학습지도 학습은 레이블이라는 정답과 함께 학습을 하는 것이다.자연어 처리는 대부분 지도 학습에 속한다.예측값과 실제값의 ..
코사인 유사도코사인 유사도는 두 벡터 간의 코사인 각도를 이용해 구한다. - 두 벡터의 방향이 완전 동일하면 1- 90도의 각을 이루면 0- 180도의 반대 방향을 가지면 -1 코사인 유사도를 구하는 식은 아래와 같다. 문서 단어 행렬이나 TF-IDF 행렬을 통해 문서의 유사도를 구하는 경우 행렬이 각각의 특징 벡터가 된다. 문서1 : 저는 사과 좋아요문서2 : 저는 바나나 좋아요문서3 : 저는 바나나 좋아요 저는 바나나 좋아요 위 예제로 띄어쓰기 기준 토큰화를 한 문서 단어 행렬은 아래와 같다.이 표를 토대로 코사인 유사도를 구할 수 있다.A와 B의 코사인 유사도를 구하면 (1+1) / (루트3)(루트3) = 2/3이 된다.A와 C의 코사인 유사도를 구하면 (2+2) / (루트3)(루트12) = 2/..