문제 링크 : https://www.acmicpc.net/problem/1014 문제 N행 M열 크기의 직사각형 교실이 주어지고, 각 교실은 1x1 단위 정사각형으로 이루어져 있다. 컨닝을 방지하기 위해 모든 학생은 자신의 왼쪽, 오른쪽, 왼쪽 대각선 위, 오른쪽 대각선 위에 다른 학생이 없도록 자리배치를 하고자 할 때, 교실에 배치할 수 있는 최대 학생 수를 구하여라. 풀이 문제를 보고, 가장 먼저 든 생각은 "다 해볼 수 있는 가?"였다. 물론 최대 10x10 정사각형의 교실이 주어지면, 각 교실 자리는 100개이고, 모든 경우의 수를 다 해보는 것은 2^100 이므로 당연히 불가능하다. 하지만, 이 문제의 경우 i번 째 줄이 어떤 상태이고, 이 상태 배치의 경우 최대 학생 수를 알 수 있다면 i+1..
제목을 잘못 적은 게 아니라, 문제 이름이 박성원이다.. 심지어 solved ac 공식 standard 문제! 풀이 이 문제는 3가지 부분 문제가 포함되어 있다고 볼 수 있다. 무려 길이가 최대 50인 자연수에 K로 나눈 나머지를 어떻게 구할 것인가 기약 분수 형태 출력은 어떻게 하는 게 빠를까? 위에 두 개 알았는데.. 그래서 어떻게 푸는데..? 우선 하나씩 해결해보자. 1. 큰 수(BigInteger) 나누기 우린 초등학교 3학년 때 구구단을 외우고, 4학년 때 나누는 방법을 배운다. 초4 수환이 큰 수 111111을 3으로 나누면 이런 방식으로 나눌 것이다. 이 과정을 살짝 프로그래밍적으로 분석하면 과정은 이러하다. 가장 앞자리 (자릿수가 가장 큰)부터 시작한다. 갖고 있는 수에 10을 곱한 후, ..
주의사항! * 이 글에 있는 난이도 분석은 작성자 개인적인 의견이며 Solved.ac를 기준으로 선정하였습니다. * 외부에 공개를 막아두었거나, 따로 풀이가 없는 코딩 테스트들은 문제 유형이 정확하지 않을 수 있습니다. 1. 2020 카카오 인턴십 코딩테스트(2020.5) 이 문제는 여기서 풀어볼 수 있습니다! (programmers.co.kr/learn/challenges?tab=all_challenges) 문제 해설 - tech.kakao.com/2020/07/01/2020-internship-test/ 올해 처음 풀어보았던 기업 코딩 테스트였던 것 같네요 1번 문제는 문제 그대로 구현하시면 됩니다! 2번은 당시에 C++ 과목 수강을 하고 있다가 스택 뽕에 취해 중위 표기법을 후위로 바꾼 후 해결하는..
4/19 ~ 4/25 이번 주 일상! 이번엔 날짜도 적었지만.. 며칠에 뭘 했는지 다 기억이 나지 않아 생각나는 대로 적으려 한다! 저번 주 주말부터 시작해서 이번 주까지 계속된 컴네 조교 활동,, 작년에 컴네 수강할 때 만든 프로젝트를 서버에 올리고 열어주면, 올해 수강생분들이 들어와 직접 해보면서 와이어샤크로 패킷을 캡처하는 활동을 한다. 그런 다음, 네트워크 계층별로 패킷을 분석하는 과제를 하면 된다. 작년엔 없었는데 올해 생겼다 😭😭 내 프로젝트는 경매를 해서, 물품을 얻고 빙고를 완성시키는 게임이었는데 이번에 다시 보니 그냥 틱택토를 만들면 어땠을까 싶다. 조금만 고치면 될 것 같은데.. 일단 귀찮아서 내버려 두었다..! 위 사진은 비트코인 떡상 조짐을 미리 알아버린 수강생분들이 호가를 두 배씩..
뭔가 웅장해 보이는 제목..!이지만 그냥 이번 주 일기장이다 😁 The darkest hour is before the dawn. "해가 뜨기 전이 가장 어두운 법이다" 라는 영어 속담이다. 요즘 한 친구가 쁘걸 누나들에게 빠져서 하루 단위로 톡방에 영상을 올려서.. 반강제로 몇 개 보던 중에 나온 구절인데, 정말 오랜만에 눈에 확 띄는 말이었다. 최근 주변에 코딩 잘하는 사람들을 보면, "언제 이렇게 잘해졌지?!"라는 생각이 들 때가 있다. 한편으론 부럽기도하고 사실 질투도 난다. 질투가 좋은 방향으로 가면, "나도 열심히 해야지!" 라던지.. "나도 열심히 하면 저렇게 될 거야!"로 생각할 수 있지만 나쁜 방향으로 가면, "재능충이네.." 라던지.. "그래봤자 얼마나 잘하겠어.."처럼 생각하게 된다...
월요일이 되어서야 쓰는 저번 주 일상! 저번 주는 일주일 내내 우울했던 것 같다 😢 이것저것 잘하고 싶어서 매일 안 쉬고 공부만 했던 것 같은데, 맘처럼 잘 되질 않더라 ㅠㅠ 그래도 이번주는 저번 주 보단 낫겠지!~ 저번 주엔 계획했던 50시간을 채웠다. 하하 사실 매일 7시간 조금 넘게 했는데, 화요일에 열품타를 켜놓고 자는 바람에 저기서 6시간 정도 빼야 한다 ㅋㅋ 그래도 50시간은 넘었다 😎 그런데 이렇게 해보니 쉬는 날이 없어서.. 정신 건강을 위해 이번주부턴 40시간 정도 목표로 하는 게 좋을 것 같다 🤦♂️ 🤦♂️
요즘 블로그에 기술적인 글 보다 이렇게 아무 의미 없는(?) 글을 쓰는게 좋아졌다 ㅎㅎ 맨날 공부하는데 블로그에도 이런거 정리하기가 싫은건지... 정리할게 없는건지.. 아무튼 요즘 삶이 많이 바뀌었다! 1. SNS 삭제 원래 sns를 안하긴 하는데... 페북은 군대에서 유일하게 소통수단이었어서 시작했고 인스타그램은 손흥민 선수 팔로우하려고.. 계정을 만들었었다 ㅋㅋ 근데 가끔 들어가면 재미있어서 눈팅하다보니.. 뭐 하는 것도 없는데 시간 날때 습관적으로 들어갔다 나와서 시간을 버리는거 같길래 아예 계정을 지워버렸다. 특히 요즘 가까운거 자주 보다보면 멀리 볼 때 살짝 멍해져서;; 생각날 때마다 멀리 보려고 하고 최대한 휴대폰을 안보며 살려고 한다. 2. 열품타 시작 요즘 열품타 어플을 시작했다! 주변에 ..
오늘도 어김없이 나만 발생하는 에러를 고치느라 시간을 보냈다. 오늘의 이슈는 vs code 에서 react 프로젝트를 진행하던 중 코드를 저장하려고 ctrl + s 단축키를 사용했는데 코드가 엉뚱하게 분산되면서 에러가 잔뜩 뜨는 것이었다 ㅠㅠ 그래서 단축키 없이 저장하기 버튼으로 했는데도 그렇길래 구글링을 해보았다. 1. "Format On Save" 끄기 [Ctrl +
얼마 전 aws amplify 설치를 하라는 대로 했는데 자꾸 amplify 파일을 못 찾겠다고 명령어 실행이 안됐다 ㅠㅠ 내가 항상 그렇지.. 그래서 이것저것 찾아봤는데, 정말 사소한? 실수를 했었길래 남겨놓는다. 보통 aws amplify install 을 치면 이런 공식 문서가 나온다. docs.amplify.aws/cli/start/install Get started - Installation - Amplify Docs How to install & configure Amplify CLI docs.amplify.aws 간단하게 여기서 하라는대로 npm install -g @aws-amplify/cli 이런 명령어를 치면 간단히 aws amplify cli 파일이 설치되는 걸 볼 수 있다. 그다음 ..
어제 하루 종일 aws ec2 인스턴스를 만들어놓고 안에 서버를 열어두었는데 도무지 외부에서 인스턴스의 public ip 로 접근이 안되길래 여기저기 찾아보면서 별짓 다해본 경험을 정리해두고자 한다. (정확히 말하자면, 내건 탄력적 ip로 설정해두었다!) 1. 보안 그룹 설정 안되는 이유를 검색하면 90% 등장하는 것이 보안 그룹 설정이었다. 보안 그룹은 간단히 말하면, 내 컴퓨터에서 서버를 열고 다른 사람이 들어올 수 있도록 하는 포트 포워딩 기능을 총괄한다. 크게 인바운드, 아웃바운드가 있는데 일단 아웃바운드는 인스턴스에서 나가는 정보니깐 모두 열어놓은게 기본값이고 인바운드는 인스턴스로의 접근이기 때문에 아무나 막 들여보내주면 안 된다. 따라서 인바운드에서 내가 접근을 허용할 포트 번호를 추가해주는 ..
우리가 프로젝트를 생성하면 MainActivity.kt라는 파일도 같이 생성되는 것을 볼 수 있다. 이 파일을 열어보면 기본 코드가 이미 작성되어 있는데, 이번엔 이 기본 코드에 대한 설명을 다룬다. 기본으로 생성된 코드는 다음과 같다. 1. package ~ : 패키지의 선언 부분으로, 이 파일의 위치를 담고 있다. 2. import ~ : 이 파일에서 사용하는 외부 패키지의 클래스를 import 한다. 3. class MainActivity~ : 클래스 선언 부분은 extends 대신 콜론(:)을 사용해 상속을 나타낸다. 여기서는 MainActivity 클래스가 AppCompatActivity 클래스를 상속받는데, 이는 구 버전 안드로이드 기기에서도 최신 기능을 쓸 수 있게 해주는 기능을 제공한다. ..
이번엔 문자열을 리소스화하고 문자열 리소스 파일을 이용해 다국어를 지원하는 앱을 만들어 볼게요 1. 문자열을 리소스로 만들기 1) activity_main.xml 파일에서 textView를 하나 만들어 줍니다! 만들면 다음과 같은 화면이 뜰텐데요, 오른쪽 하단 Component Tree에서 방금 만든 textView를 확인할 수 있습니다. 그런데, 오른쪽에 경고 아이콘이 있습니다. 이것을 클릭하면 하단에 경고 내용이 표시되는데 안드로이드에서는 모든 문자열을 리소스화 해서 사용하는 방법을 권장하기 때문이죠. 따라서 다음 Fix 버튼을 클릭합니다. 그럼 다음과 같은 창이 뜰텐데, 저는 다음과 같이 입력한 후 OK를 눌렀습니다. 짜잔! 경고가 사라졌네요! 그럼 이제 다음은 리소스가 정의되어 있는 res/val..