전체 글169 [cpp]백준 14266번 나는 가르친다 스위핑을 더보기 오늘 시간 낭비한 것에 대한 푸념 풀이는 맞았는데, 실수로 디버깅하려고 작성한 코드를 안 지워서 정답률 및 시간 손해를 봤다... ㅠㅠ 그것도 두 문제나... 구현이 길어지면 단계별로 테스트하기 위해 다음과 같이 로그를 찍어보는 코드를 넣었는데, 제출할 때 이를 인지하지 못 한 게 사건의 발단이었다. 그래서 위와같이 8번의 맞왜틀을 시전했다. 처음 코드에서 44번 라인만 지우니 맞더라... https://www.acmicpc.net/problem/14266 14266번: 나는 가르친다 스위핑을 영선이는 BOJ 캠프의 강사다. 이번에 스위핑에 대한 세미나를 진행하였는데, 그 연습문제를 만들었다. “1사분면 정수 좌표계에 n개의 점이 주어질 때, 원점을 지나는 직선 중 직선위의 점들이 최 www.ac.. 2021. 9. 19. 알고리즘 및 코딩테스트 언어 고민 중이다. 얼마 전 카카오 블라인드 코딩테스트 본 후 C++ 로는 코딩테스트를 풀기 힘들다고 느꼈다. 물론 여전히 백준이나 알고리즘 대회에서는 C++ 이 최고다. 알고리즘 대회나 백준은 시간 제한이 타이트한 경우가 많아서 같은 알고리즘이라도 순수 파이썬으로는 시간초과 나는 경우가 있다. 또한 채점이 완료되는데 기다리는 시간도 길다. 특히 언어별 추가시간이 없는 경우에도 C++ 로 풀 경우 알고리즘만 맞는다면 시간초과를 볼 일이 없다. 1. C++ 의 한계 사실 한계까지는 아니고 C++ 로도 코딩테스트 다 풀 수는 있는데 많이 불편하다. 코딩테스트 특성상 순수 알고리즘 실력보다는 구현, 실제 개발 위주로 문제를 내려고 하는 것 같다. 물론 뒷번호로 가면 알고리즘을 물어보는 문제가 나오기도 한다. 아무튼 문제 유형에 .. 2021. 9. 19. [cpp]백준 1107번 리모컨 https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 이 문제를 본 건 엄청 오래됐다. 3년 전에도 봤었고, 그 뒤로도 몇 번 풀이를 생각했으나 못 풀었던 문제다. 요즘엔 알고리즘을 나름 꾸준히 풀고 있어서 무슨 수를 써서든 풀 수 있을 거란 확신이 있었다. 처음엔 1ms 도 아니고 1μs 안에 돌아가는 알고리즘을 생각했지만, 구현이 매우 어렵고 예외처리도 많이 해야 한다. 그 뒤에 아주 간단한 풀이 방법이 생각 났는데, 왜 이걸 이.. 2021. 9. 12. Nginx - React 설정 React 를 Nginx 웹서버를 이용해 배포하려고 할 때 기본적인 설정에 대해 알아보자. algosketch 의 환경 (참고로 AWS 는 putty 로 연결하여 사용하였다. putty 연결하는 방법을 모른다면 그냥 EC2 인스턴스에서 연결 누르고 웹 환경에서 조작하면 된다. Free Tier 말고 유료 버전도 쓰고 있는데 Free Tier 버전은 입력할 때 딜레이가 생긴다. 서버 스펙 차이인 듯...) AWS EC2 - Free Tier ubuntu 20.04 CRA(Create React App) 로 만들어진 React 프로젝트 1. nginx 설치 및 실행 sudo apt-get update sudo apt-get install nginx sudo service nginx start sudo ser.. 2021. 9. 9. React - 로그인 아직 해결 못 함. API : 서버에서 jwt 를 주면, 인증이 필요할 때 헤더에 담아서 보내면 된다. 여기서는 jwt 를 사용했지만 다른 방식은 세션 방식이 있다. jwt 는 서버에서 관리할 게 줄어들어 편하지만, 세션과는 다르게 한 번 발급한 jwt 는 다시 주워 담을 수 없다. 유효 기간이 긴 refresh token 과 유효 기간이 짧은 access token 두 개를 발급하여 관리할 수도 있지만 완전한 해결책은 아니다. 대신 jwt 방식의 장점이 세션 방식의 단점. 참고 자료 : https://youtu.be/1QiOXWEbqYQ 첫 번째 접근 : 서버에서 받은 jwt 를 전역 변수에 저장 후 (axios)요청시 헤더에 jwt 를 담아서 보낸다. 문제점 : React 는 새로고침하면 전역 변수가.. 2021. 8. 29. React - 경량화 (용량 최적화) 위 사진은 경량화 전 메인 페이지 기준 자원 다운로드 용량이다. 테스트는 개발자 도구 네트워크 탭에서 Disalbe cache 에 체크한 후 새로고침 하였고, AWS 에 배포된 상태이다. 1. 폰트 경량화 디자이너에게 받은 폰트들 중 Noto Sans CJK 의 otf 포멧의 폰트가 각 font-weight 별로 15 MB 정도의 용량을 가졌다. 메인 페이지는 font-weight 400, 500 을 사용하므로 폰트에만 30 MB 정도 사용했다. 1) 처음으로 시도한 건 otf to ttf 였다. 디자이너에게 받은 다른 폰트 (ttf) 는 용량이 굉장히 적어서 이를 변환해 주는 사이트가 있을 거라 생각하고 진행했다. 결과는 15 MB 하던 게 7 KB 정도로 1/2000 로 줄었는데, 테스트 해 보니 폰.. 2021. 8. 15. 이번 프로젝트 하면서 발생한 아무거나 역할 : Front-End (React) 개발 Front-End 역할을 맡았지만, React 를 아예 모르는 상태로 시작했다. 아예 모른다기엔 해커톤 전에 한 3일 정도 공부한 이력이 있긴 하지만... 3일은 무에서 시작한 거 아닐까? 기존에 HTML, CSS 는 조금 알고 있었다. 그렇지만 웹 개발을 주로 해온 것은 아니기 때문에 교육비로 CSS 를 신청해서 들었다. CSS 는 근본이 없기 때문에 좀 더 확실히 알아둬야 했다. 처음으로 피그마로 와이어 프레임, 디스크립션 작성하고 디자인 외주 넣었다.(약 15 페이지, 간단한 페이지가 많음) 결과 받자마자 2~3일만에 CSS 작업 끝냈지만 해상도 대응은 안 된다. 나중에 리팩터링 해야겠다. nginx 와 개인 AWS EC2 이용해서 React 서버를 배.. 2021. 8. 7. 백준 14734번 Aztec Diamond (cpp) https://www.acmicpc.net/problem/14734 14734번: Aztec Diamond 첫 번째 줄에 문양의 크기 N이 주어진다. N은 1 이상 100 이하이다. 다음 2N줄에는 문양의 행을 나타내는 길이 2N의 문자열이 주어진다. “.”은 공백, “L”과 “R”은 가로 벽돌의 좌우 칸, “U”와 www.acmicpc.net 이 문제는 스페셜 저지이다. 이런 유형의 문제를 풀기 위해서는 순서를 강제해야 해야 한다. 이 문제도 그런지는 모르겠지만. 종만북이 그랬다. 위에 거 회전했다가 아래 거 회전했다가 하면 중복되는 경우도 잡아내기 힘들지 않겠는가? 이 문제 풀이에 대한 착안은, 블록 하나를 두면 그 블록에 의해서 특정 위치에 특정한 모양으로 존재할 수밖에 없는 경우가 있다는 것에서 .. 2021. 7. 28. 백준 1562번 계단수 https://www.acmicpc.net/problem/1562 1562번: 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net DFS + DP 문제이다. DP를 사용하기 위해, 임의의 숫자로 시작하여 숫자를 하나씩 이어나갈 때 지금 몇 번째 숫자까지 붙였는지, 현재 숫자는 무엇인지, 0~9 숫자를 사용했는지 여부를 판단해야 한다. 근데 사실 0~9 까지의 숫자를 사용했는지 모두 확인할 필요가 없다. 0과 9라는 숫자만 사용되었다면 그 사이에 있는 숫자도 모두 사용되었을 수밖에 없다. 따라서 메모이제이션 배열을 cache 라 하면 cache[101][10][2][2] 이런 식으로 만들 수 있고, 101 은 dfs 의 깊이, 10 은 현재 숫자, .. 2021. 7. 21. 이전 1 ··· 5 6 7 8 9 10 11 ··· 19 다음