https://www.acmicpc.net/problem/1043 1043번: 거짓말 지민이는 파티에 가서 이야기 하는 것을 좋아한다. 파티에 갈 때마다, 지민이는 지민이가 가장 좋아하는 이야기를 한다. 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 www.acmicpc.net 분리집합 (유니온-파인드)를 사용하여 푸는 문제이다. 문제 분류를 보면 그래프 탐색으로도 분류가 되어있는데, 우선은 분리집합으로 풀어보았다. 이 문제는 시간제한도 2초로 넉넉한데, 파티당 인원수, 파티수, 총 사람 수가 매우 작다. 그래서 시간복잡도는 거의 신경쓰지 않고.. 그냥 최대한 되는 대로 풀어보았다. 풀이 아이디어 1. 분리집합 자료구조만 이해했다면 문제 해결 아이디어를 떠올리는 것은 어렵지 않다...
https://www.acmicpc.net/problem/1005 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N 과 건물간의 건설순서규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 그래프 문제를 풀고 싶어서, solved.ac의 그래프 태그 문제를 찾아보다가 발견한 문제이다. 스타크래프트를 연상시키는 문제인데, 그래프에 DP를 섞은 재미있는 문제였다. 우선 이 문제는 문제에서 주어진대로 시작하는 건물부터 차근 차근 건물을 지어나가다가 마지막에 원하는 건물을 짓게되면 멈추는 풀이로는 접근이 쉽지가 않다. 그래서 거꾸로 원하는 건물을 짓기 위해 지어야 하는 건물들을 역탐색..
https://www.acmicpc.net/problem/17298 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 설명을 간단하게 하면, 내 오른쪽에 있는 숫자들 중, 나보다 큰 첫번째 숫자를 찾는 문제이다. 5 2 3 8 이면, 5 입장에서 오른쪽에서 가장 처음만나는 자기보다 큰 숫자는 8, 2 입장에서도 8 3 입장에서도 8이다. https://www.acmicpc.net/problem/14659 14659번: 한조서열정리하고옴ㅋㅋ 첫째 줄에 봉우리의 수 겸 활잡이의 수 N이 주어진다. (1 ≤ N ≤ 30,000..
C, C++, Java 와 같은 언어는 main 함수에 인자를 넣어 프로그램을 실행시 인자를 주어 실행하면 해당 인자를 받아 인자 정보를 가진채로 프로그램을 실행할 수 있습니다. 하지만, 파이썬은 기본적으로 인자를 받지 않습니다. 파이썬에서 인자를 받기 위해서는 sys모듈의 argv를 사용해야 합니다. from sys import argv script, first, second, third = argv print(f"script name is {script}") print(f"1st argument is {first}") print(f"2nd argument is {second}") print(f"3rd argument is {third}") 다음과 같이 스크립트 실행시 스크립트로 인자에 담긴 정보를 받..
* 그날그날 pjax를 공부한 과정을 일기 쓰듯 정리하는 공간입니다. * 깃허브 TLI에 쓰려다가 마크다운 문법을 공부하는게 의미가 있나 싶어 블로그로 돌아옵니다.. (근데 생각해보니까 굳이 마크다운으로 할 필요 없이 txt파일을 커밋하면 됐었네요 ㅋㅋㅋ) 오라클 클라우드로 가상 머신에 리눅스를 올리고 nginx를 이용해 웹서버를 만들었다. 서버 사이드 언어로는 php를 사용하여 웹페이지에 회원가입과 로그인기능을 만들고자 한다. DB는 마리아DB를 설치하였다. 디자인은 엉성하지만, 대충 이런 레이아웃을 만들었다. 악보검색, 그룹, 마이페이지, 회원가입 각각의 버튼을 클릭할 때마다, 오른쪽 공간에 내용물을 다르게 띄우는 것이 목표이다. 이때 내용물을 띄울 때 PJAX 기법을 사용하는 것이 목표이다. htm..
평소에 PS를 할 때는 프로그래머스보다 백준 위주로 풀었었다. 그러다 카카오 인턴십을 공고를 보고 과연 어떤 식으로 코딩테스트를 보는지 궁금해졌다. 잘 볼 것이라는 기대는 전혀 없었지만, 어차피 아직 2학년이라 붙어도 인턴십은 못하니 그냥 체험해보자는 느낌으로 가볍게 응시했다. 4시간이라는 시간동안 5문제를 풀게되는데, 나의 집중력은 3시간 50분 즈음에서 끝나버렸다. 5문제중에 2문제를 완벽하게 풀고, 한 문제를 테스트케이스 한개 실패해서 못풀고, 나머지 두 문제를 전혀 건들지 못했다. 첫번째 문제는 백준 solved.ac 기준 브론즈4~3 정도 난이도로 나올법한 if, else if 를 써서 단순 구현하는 문제였다. 숫자와 숫자의 영어이름이 섞여있는 문자열에서 숫자의 영어이름을 숫자로 바꾸어 최종 정..
공군으로 군대를 지원할 생각으로 자격증을 알아보다 정보처리기능사가 따기 쉽다는 말을 듣고 준비하였습니다. 작년 2020년부터 정보처리기능사 출제기준이 바뀐 후 최종 합격률이 15%라는 말을 보고 엄청 긴장하면서 열심히 준비했는데, 올해는 생각보다 쉽게 나와서 조금 허탈했던 기억이 나네요ㅋㅋ 정보처리기능사 필기와 실기 모두 동일한 출판사의 동일한 교재로 공부했습니다. 저는 이기적 정보처리기능사 필기/실기 교재 2권으로 공부했습니다. 따로 출판사에서 돈을 받고 쓰는 글은 아닙니다. 다른 교재로 공부해도 충분히 합격할 수 있다고 생각합니다. 개인적으로 필기든 실기든 이 교재로 공부하면서 들었던 생각이 "이런 것까지 시험에 나와?" 였습니다. 좋게보면 자세하게 설명해줘서 이해하기 조금 더 편하다고 할 수 있고,..
www.acmicpc.net/problem/9938 9938번: 방 청소 처음 6개의 술은 규칙 1에 의해서 1, 3, 5, 7, 9, 2번 서랍에 보관할 수 있다. 7번째 술은 규칙 3을 적용할 수 있다. 1번 서랍에 들어있는 술을 2로, 2번 서랍에 들어있는 술을 3으로, 3번 서랍에 들어있 www.acmicpc.net 학교에서 분리집합 스터디 이후 연습문제로 풀게된 문제이다. 난이도는 solved.ac 기준 플레티넘3 이다. 분리집합이라는 아이디어를 갖고 시작할 수 있다면 난이도는 골드 수준으로 내려갔을 것 같다. 문제 설명을 읽어보면 복잡하다. 술을 서랍에 정리하는 순서가 다음처럼 나와있다. 서랍 Ai가 비어있다면, i번 술을 그 서랍에 보관한다. 서랍 Bi가 비어있다면, i번 술을 그 서랍에 보..
학교 선배님의 추천으로 '커리어 스킬'을 알게 되었다. 작년부터 추천해주셨던 책인데 올해가 되어서야 읽게 됐다. 분명 개발자를 위한 책인데, 읽다보니 꼭 개발자가 아니더라도 도움될 만한 내용이 많아서 놀랐다. 앞 부분은 신입 프로그래머를 위한 내용부터, 주니어 프로그래머를 위한 내용들 위주로 서술되있다. 그리고 뒤로 갈수록 '인생'에 대한 조언이 점점 더 많아지는데, 개인적으로 정말 유익했었다. 처음 이 책을 사고 싶다고 생각한 큰 이유는 개발자의 진로를 알고 싶었기 때문이다. 당장 1학년 1학기가 끝날 때까지만 해도 프로그래머 = 프로그램 만드는 사람 게임 프로그래머 = 게임 만드는 사람 이것 밖에 몰랐다. 그냥 졸업하면 뭔가 프로그램을 만드는 사람이 되는 건가 싶었다. 그러다 카카오의 채용 공고를 보..
www.acmicpc.net/problem/5719 5719번: 거의 최단 경로 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 장소의 수 N (2 ≤ N ≤ 500)과 도로의 수 M (1 ≤ M ≤ 104)가 주어진다. 장소는 0부터 N-1번까지 번호가 매겨져 있 www.acmicpc.net 다익스트라 응용문제로 풀게된 문제이다. solved.ac 기준 플래티넘 5의 난이도를 가진 문제이다. 정말 플레티넘답게 쉽게 안풀리는 문제였다. 질문게시판의 반례와 대회 테스트케이스를 활용해가며 4시간만에 풀었다.. 내가 문제에 접근한 방법, 문제를 푼 아이디어를 기록하고자한다. 이 문제를 푸는 큰 흐름은 다음과 같다. 다익스트라(최단거리 계산) -> 최단 경로들 삭제 -> 삭제한..