zlatmgpdjtiq의 등록된 링크

키자드에 등록된 총 576개의 포스트를 확인하실 수 있습니다.

Naver Blog

5월 01일 - 소홀히

#블챌 #오늘일기 요즘 들어 블로그 관리를 소홀히 한 것 같다. 새로 알게 된 것도 많고 써야 할 것은 많지만 쓰기는 귀찮은 일이 되어버린 것만 같다. 학교 강의와 더불어 일본어 공부까지 하려니 시간이 남아나지 않지만 그냥 내 핑계라고 생각해도 좋다 ㅋㅋㅠㅠ 원래 드라마나 영화를 잘 안 보는 편이기는 하지만 최근에 친구가 '내리겠습니다 지구에서'웹 드라마를 추천해 줬는데 생각보다 재미있어서 계속 보게 된다. 자격증 시험이 별로 남지 않아서 당분간은 참아야겠다. 그리고 며칠 전에 군대 간 친구가 휴가 나왔었는데 오랜만에 만나니 그리 반가울 수가 없었다. 재밌었던 시간은 빠르게 가는 것 같다. 지금 노래를 들으면서 작성을 하고 있는데 생각보다 노래가 좋아서 공유를 하도록 하겠다! 그리고 오늘 나는 비요뜨를 먹는다 친누나가 나 비요뜨와 빼빼로 좋아하는 걸 알고 자주 사 온다 ㅋㅋ.. 누나 고마워 :-D

Naver Blog

5월 02일 - 딱히

#블챌 #오늘일기 오늘은 한 게 딱히 없다. 그냥 잠깐 나갔다 온 정도나.. 과제 조금 한거 외에는 없는 거 같다. 조금은 해본 게 있다면 블로그 구축해본 거?이다. 하프개발자 | 개발자의 Stroy Blog By Viktoriya Kapitonenko Readme 20 Feb 2018 21:00 V.Kapitonenko Читать Далее category2 Edit Lorem ipsum 03 Jun 2017 00:00 V.Kapitonenko Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nost... hdev1004.github.io 전에도 지킬을 이용해서 만들어 보았었지만, 마음에 안 들어서 다시 만들기로 했다. 처음 지킬을 사용해서 했을 때는 빌

Naver Blog

5월 03일 - 급하게

#블챌 #오늘일기 오늘은 자격증 공부를 하다가 일기 쓰는 걸 까먹고 급하게 쓰러 왔다. 내가 일기 쓰는 거 보고 누가 지금 손 바쁘다고 뭐라고 한다ㅋㅋ 나빴다

Naver Blog

5월 08일 - 무제

그동안 안 썼긴 했는데 일기를 쓰려 한다. 어제는 아침 빨리 일어나서 병원을 갔었는데, 한 6시쯤인가? 그때 일어나서 졸린 눈으로 준비를 했다.. 그래도 아침 일찍 가서 사람이 별로 없다는 게 정말 좋음 ㅎㅎ 중2 때부터 꾸준히 갔었던 곳이라 그런지 간호사분들이 또 왔냐면서 인사를 해준다. ㅋㅋㅋ 쓰읍 언제나 이건 적응 안 됨.. 그리고 고등학교 친구들한테 전화 와서 만나기로 했었는데, 이제 곧 친구가 군대 전역한다고 해서 6월 중순쯤에 만나기로 약속했다. 진짜 내 친구들은 왜 하나같이 말없이 군대 가는지 모르겠다 ㅋㅋ ㅠㅠ 예전에 답장 없어서 어디 갔냐라고 하니까 군대라고 한 것부터가 정말 충격이었다 ㅋㅋ 생각해보니 오늘은 진짜 한 게 없는 거 같다. 아침 10시에 수업 있어서 듣고 그냥 놀기만 했다. (심지어 수업마저 10시 반쯤에 일어나버림 ㅋㅋㅋ) 내지구 보고, 와일드 리프트 하다가 지금 일기 쓰고 있는 것 같은데.. ㅋㅋ 여러분도 내지구 보세요. 재밌읍니다. 시간 가는 줄

Naver Blog

신기한 나무 성장 코드2

안녕하세요. 저번에 '신기한 나무 성장 코드'글에서 좀 응용하기 힘들다 판단하여 새로운 코드를 찾던 도중 Codepen에서 좋은 코드를 발견했습니다. topiary growing, swaying, hue varying tree..... codepen.io 코드 소개 코드를 보게 되면 branch 객체를 이용해서 나무를 생성하는 코드를 볼 수 있습니다. branch 객체 내의 disp메서드가 이번 코드의 핵심이라고 볼 수 있더라고요. 코드의 흐름을 보면 disp 재귀 함수와 limb 배열을 이용해서 가지를 늘려가는 걸 볼 수 있습니다. 코드 수정 이 코드를 약간 수정하여, 아래와 같이 수정을 해봤습니다. 줄기부터 가지까지 굵기 조절을 하여 나무와 같은 효과를 만들어보았습니다. 만들고자 하는 목표는 아래와 같습니다. 지금으로써의 문제는 갈수록 가지가 짧아지게 하고 가지의 수는 많아지게 한다는 것과, 색상을 넣어보는 것인데요. 영상에서는 색상 효과를 globalCompositeOperat

Naver Blog

5월 10일 - 무제

오늘은 일어나서 강의를 듣고 집 청소 후에 일본어 수업을 들었다. 일본어 수업이 12주 동안 진행되는 건데, 한 4~5주 정도 되었을 줄 알았는데 벌써 7주 되었다고 하니까 깜짝 놀랐다 ㄷㄷ.. 뭐 이리 빠르지.. 버근가? 누가 패치 좀 해줘.. 어쩐지 요즘 들어 일본어 수업이 많이 어려워지고 힘들어지긴 했다 ㅋㅋ ㅠㅠ 2시간씩 월, 수, 토요일에 하는데 한번 수업 끝날 때마다 기빠짐 .. 수업은 이런 거 하는데.. 선생님이 지목해서 시키니까 조금이라도 놓치면 수업따라가기가 힘들다. 아 그리고 질문이란 질문은 왜 나한테 많이 하는지.. 오늘은 딱히 일도 없었고 여기까지 써야겠다. 皆さん おつかれさまでした。

Naver Blog

5월 13일 - 으윽

오늘은 조금 바쁘게 살았다. 아침 10시에 일어나자마자 씻고 준비하고.. 밥 먹으려는데 학교 가야 해서 시간이 없었다. ㅋㅋ ㅠㅠ 아침을 못 먹어서 그런지 12시쯤 되니까 배고파서 정신이 없었다. 학교 앞에서 내리자마자 바로 앞에 보이는 편의점에 들어가서 햄버거와 음료를 하나 사서 먹었는데 너무 배고파서 인가.. 엄청 빨리 먹었다.. 학교에 가서 전에 하다 못 한 일들을 하려는데 교수님이 오시더니 꼭 하는 말 '어디까지 했니?' ㅋㅋㅋ 아.. 3시간 수업에 교수님이 3분 정도밖에 안 보이는 건 뭐냐고 ㅋㅋ ㅠㅠ 그렇게 수업을 마치고 특강을 듣는데 전문가분이 교수님하고 친하게 지내던 사이였더라.. 그 전문가님은 설명 진짜 잘하시고 내용도 진짜 좋았는데, 문제는 내가 졸았다.. 잠도 별로 못 자서 피곤했나 보다.. 그렇게 학교 끝나고 집으로 달려오자마자 일본어 수업을 듣는데.. 오늘은 좀 쉴까 하다가.. 한번 놓치면 더 힘들 거 같아서 그냥 들음.. 30분 정도 늦긴 했지만 어찌어찌 겨

Naver Blog

5월 18일 - 무제

오늘 정처 산기 시험 보러 갔었다. 가는 데만 2시간.. ㅋㅋ 지하철 1호선 5호선 환승할 때와 마곡역에서 출구로 나갈 때 통로가 뭐 이리 길던지.. 어우.. 아무튼 힘들었다.. 그동안 CBT로 풀던 건데 로그인 안 해서 날려버린 것도 있고.. 풀다가 초기화도 돼보고 여러일이 많았다 나는 자격증 준비할 때 시나공 책을 이용했다. 오늘 12시 40분에 시험을 봤는데, 대기실이 없어서 계단에 앉아서 기다렸다 ㅋㅋ ㅠㅠ 시험을 다 보고 나니 이게 웬일이야 76점이네ㅋㅋ 생각보다 잘 맞아서 당황.. ㅋㅋㅋ 시험을 다 보고 친구 집에 가서 친구 강아지를 보고.. 산책시켰다? ㅋㅋ 이름은 옥자인데 만날 때마다 엄청 반겨서 내가 부담스러움 ㅋㅋ 옥자가 너무 핥아서 손에 침 범벅됨 ㅋㅋ 그리고 집에 와서 뻗었다 내일이 휴일인데도 불구하고 우리 일본어 선생님의 열정.. 휴일에는 쉬면 안 될까요? 엉엉 ㅠㅜㅜ

Naver Blog

5월 24일 - 블챌

#블챌 #오늘일기 오늘부터 블챌 시작이다. 으윽.. 집에만 있다 보니 일기에 적을 내용이 없다. 그래도 써본다. 엊그제 키링을 만들었다. 스냅스에서 만들었는데, 무료 제작 이벤트 할 때 만들었다. 당일 이벤트라 급하게 했었다. 역시 개발이라고 하면, VSC와 깃허브.. 국룰 이 아닌가? VS도 할까 생각했지만, VS는 너무 무거운 IDE인 관계로 패스 오프린트미에서도 키링 이벤트도 함! 기간 : 2021.05.24(월) ~ 05.26(수) 오프린트미 누구나 쉽고 간편하게 브랜드 홍보물을 만들고 보다 특별하게 나의 비즈니스를 알려요. 소량부터 대량까지 필요한만큼 경제적으로 만들어보세요. www.ohprint.me 오늘 개발 톡 방에서 누군가 카페24의 mysql 속도가 느리다고 불만을 토로했는데 카톡 방 중 카페24 직원이 있었다는 사실 ㅋㅋㅋㅋ.. 그리고.. 요즘 지렁이 게임이 왜 이렇게 재밌을까.. ㅋㅋ 끝

Naver Blog

5월 25일 - 블챌

#블챌 #오늘일기 오늘은 딱히 한 일이 없다 일어나서.. 강의 듣고.. 자고 끝..? 시간을 낭비하는 느낌 이랄까.. ㅋㅋ ㅠㅠ 유튜브라도 본걸 쓰기라도 해야겠다. 유튜브를 봤을때 재밌는걸 발견했다. 재밌어 보이고 영상중에 다운로드 링크가 있길래.. 한번 다운해봄 ㅋㅋ Wrong Floor by N4bA do you want to be scared? n4ba.itch.io 하핫 가뜩이나 컴퓨터 용량도 별로 없는데.. 200메가나 하다니 흐윽 오와앙 실제로 해보니까 무섭기도 무서운데 3D 울렁증이 있어서 어질어질 하고 클릭이 잘 안되는거 같아서 중간에 끔 ㅋㅋ.. 오늘 노래 추천 끝

Naver Blog

5월 26일 - 블챌

#블챌 #오늘일기 오늘은 학교를 다녀왔다. 통학시간도 길어서 한번 학교 갔다 오면 너무 힘들다.. 도착하자마자 학교 카페에 가서 딸기 요거트 스무디를 마시고.. 캡스톤을 했는데 오류도 오류고 하던 것마저 다시 바꿔야 하기에.. 생각이 많아지고 힘들다. 게다가 담당 교수님은 메인 페이지 색상이 너무 심플하다는 얘기가 있었는데.. 고민을 좀 해봐야 할 것 같다. 다크 모드라도 만들어야 하나.. 그러고 힘겹게 집에 오니 5시다. 집에 와서 조금 쉬었다가 자고 일어나 보니 어느새 7시네.. 7시면 뭐야~ 일본어 수업이지... ㅋㅋ ㅠㅠ 요즘 て 형태와 ない 형태를 바꾸면서 문장 만들기 연습을 하는데.. 혼돈이다 진짜.. 너무 헷갈려.. 앞부분까지는 조금 괜찮았는데 뒤로 가면 갈수록 어질어질하다 이번에 배웠던 건 "~하지 않으면 안 된다" 이건데, 이게 전에 배웠던 거랑 합쳐져서 진짜 머리 쓰면서 해야 한다. 이건 아직도 발음이 잘 안 나온다 ㅋㅋㅋ ~나 케레바나라나이.. ㅋㅋ 뭐 이리 길어

Naver Blog

5월 27일 - 블챌

#블챌 #오늘일기 오늘은 비가 왔다. 비 오는 날은 왠지 움직이기 싫다.... 그렇지만 학교를 가야 했기에 오늘은 파란색 우산을 챙겼다. 저번에 주황색 우산을 잃어버려서 이번에는 안 잃어버리려고, 우산을 잘 감시해 다행히도 우산이 집에 잘 돌아왔다. ㅎㅎ! 금요일까지.. JLPT 3급 모의시험이랑.. 강의.. 과제.. 이력서 작성까지 끝내야 해서 바쁘다. 요즘은 너무 지친다. 그래서 그런지 요즘 코딩보다 게임을 많이 하는 거 같기도 하다. 게임을 많이 했던 중학교 시절로 돌아간 느낌이랄까.. 나중에 일하면서 학업 걱정 없이 자기계발할 수 있는 상황이 오면 좋겠다. 오늘은 너무 힘들다. 여기까지 써야겠다. - 끝 -

Naver Blog

5월 28일 - 블챌

#블챌 #오늘일기 오늘은 강의를 다 듣고 과제를 끝냈다. 하지만 아직 남아있는 것이 있는데.. 일본어 모의시험을 풀어야 한다는 것.. 이게 필수는 아닌데.. 안 하면 또 강의시간에 뭐라 말할 것 같단 말이지... 귀찮다아.. 문제도 많아 보이는데 아무튼 내일은 아침 10시 수업이니까 대충이라도 풀고 오늘은 빨리 자야겠다. 그리고 이제 공부할 거를 생각해놓았다. 'Online Tutorials'라는 개발 유튜버 인데 html, css를 위주로 개발을 하는 멋진 분이다. 나의 경우는 위의 영상과 같이 그냥 멍 때리면서 볼 수 있는 그런 것을 만드는 걸 좋아한다. 딱히 이유는 없다. 그냥 좋다랄까.. 이제 이런 거를 만들어서 네이버 블로그도 좋지만, 깃허브에다가 정리 좀 해야겠다. 만들어 놓았던 것, 만들 수 있는 것은 있어도 정리가 안되어서 내세울 수 있는 그런 게 없는 느낌이랄까? 고민만 하다 오늘도 하루가 끝난다. 오늘은 여기까지 - 끝 -

Naver Blog

5월 29일 - 블챌

#블챌 #오늘일기 오늘 일어났다 아침 9시 50분 친구가 깨 워 줬 다 그렇지 않으면 선생님한테 또 이름불린다. 슬프다. 잤다. 점심먹고 일어나 남아있는 과제를 했따. - 끝 -

Naver Blog

5월 30일 - 블챌

#블챌 #오늘일기 오늘은 왠지 힘들다 그래서 비요뜨를 먹었다 맛있다아 갈수록 쓸게 없어진다 어떡하지 ㅋㅋ ㅠㅠ 비요뜨 였던것 오늘 노채 추천은 적재의 나랑 같이 걸을래 - 끝! -

Naver Blog

5월 31일 - 블챌

#블챌 #오늘일기 오늘은 잠만 많이 잤다. 원래 오늘 계획은 아침 10시에 일어나서 12시 전까지 강의를 끝내고 밥을 먹는 거였는데 눈뜨니까 12시다...? 게다가 또 강의는 왜 소리가 작은 건지... ㅋㅋㅠㅠ 다 듣고 밥 먹고 피곤해서 잤는데... 7시다.. 머리 깨지는 일본어 수업을 듣고 밥 먹고.. 지금.. 아무 생각 없이 시간 날리고 있다. 이제 시험공부도 슬슬해야 하는데.. 으흑.. 수달이나 봐야겠다 - 끝 -

Naver Blog

6월 01일 - 블챌

#블챌 #오늘일기 벌써 6월이다. 뭐 했다고 벌써.. 시간 개 빠르다 버그다~ 버그 그건 그렇고 내일 학교 가는 거 너무 슬프다 상담 때문에 금요일도 학교에 가야 하는데, 되게 힘들 거 같다.. ㅋㅋ 요즘은 가만히 있어도 시간이 잘 가는 게 신기하다. 아직 현장실습 매칭이 안돼서 불안하기도 하고.. 시험도 다가오니까 공부도 해야 하고.. 캡스톤도 해야 하고.. 으흑 할게 너무 많아 오늘 노래 추천 적재의 별 보러 가자 오늘은 한 게 딱히 없으므로 여기까지 - 끝 -

Naver Blog

6월 02일 - 블챌

#블챌 #오늘일기 자 오늘의 일기 포인트 아침 일찍 일어나서 학교를 간다. 학교 갔다 와서 잠을 잔다. 잠을 잔 후 일본어를 듣는다 끝 자아 그러면 공부를 해볼까?

Naver Blog

6월 03일 - 마지막 블챌

#블챌 #오늘일기 오늘은 7시 50분에 기상 하려고 했지만, 알람을 끄고 자는 바람에 8시 15분에 기상했다 옷 대충 입고, 비 많이 온다고 하길래 긴 파란 우산을 챙겼다. 오늘도 우산을 잃어버리지 않기 위해 우산이랑 손 꼭 잡고 다녔다. 오늘 아침 수업을 듣고.. 마라탕을 먹으러 갔다. 마라탕 2단계를 시켰는데.. 맵찔이인 나한테는 매워서, 집 가는데 배 아팠다. 으윽 ㅜㅜ 지하철에서 졸다가 한 역 놓치는 바람에 반대편으로 갈까 생각했었는데 귀찮아서 그냥 집까지 걸어갔다 난 우산을 썼는데.. 왜 비를 맞고 있는거지 내일도 학교 가야 하는데 .. 가기 시러.. 누가 나 대신 가주라 - 끝 -

Naver Blog

React 01- 리액트 설치

본 블로그 글은 아래의 강의(코딩애플 님의 강의)에서 배운 내용을 토대로 진행을 합니다. Node Js 설치 첫 번째로 리액트를 하기 위해서는 NodeJs를 설치해야 합니다. Node.js Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org Node Js를 설치만 하면 됩니다. VSCode 터미널 명령어 그런 후 다음 VScode에서 터미널 명령어를 다음과 같이 입력해 줍니다. npx create-react-app blog npx는 nodeJs에서 라이브러리 설치를 도와주는 명령어입니다. create-react-app 은 리액트 세팅이 다 된 boilerplate 만들기 쉽게 도와주는 라이브러리 이름입니다. blog는 프로젝트의 이름입니다. 원하시는 프로젝트 명을 입력하시면 되겠습니다. 저도 설치가 정상적으로 진행이 되네요 설치가 완료된 후, 해당 폴더로 이동하게 되면 App.js가 있는

Naver Blog

React 02- 블로그 만들기(상단 바)

본 블로그 글은 아래의 강의(코딩애플 님의 강의)에서 배운 내용을 토대로 진행을 합니다. App.js 필요 없는 내용 지우기 App.js에서 필요 없는 내용을 지워보도록 하겠습니다. 아래와 같이 수정하시면 되겠습니다. return 안에 나가는 평소에 html을 하던 것처럼 코딩을 하면 됩니다. html처럼 보이지만 해당 문법은 JSX입니다. html에서 css를 주기 위해 class를 사용하지만, 리액트에서는 className을 사용합니다. JSX도 하나의 문법이기 때문에 class는 예약어로 지정이 되어 있습니다. 그래서 className으로 사용을 합니다. import에서는 같은 경로에 App.css라는 css 파일이 있는 것을 볼 수 있습니다. 그러면 여기서 디자인을 하면 되겠습니다. Navbar 만들기 영상을 보고 직접 작성하시는 걸 추천합니다. (영상 : 5분 3초) - App.js - function App() { return ( <div className="App"> <

Naver Blog

React 03- 블로그 만들기(글 목록)

본 블로그 글은 아래의 강의(코딩애플 님의 강의)에서 배운 내용을 토대로 진행을 합니다. 시작하기에 앞서, 글 목록을 만들고 시작하겠습니다. 글 목록 추가 영상 (0분 55초) - App.js - function App() { let posts = '강남 고기 맛집'; return ( <div className="App"> <div className="black-nav"> <div> 하프 Blog </div> </div> <div className="list"> <h3> { posts } </h3> <p>2월 17일 발행</p> <hr/> </div> </div> ); } - App.css .list { margin-top: 30px; text-align: left; padding-left: 20px; padding-right: 20px; } useState 여기서 JSX만의 신 문법이 나오는 것 같습니다. 하기 전에 있어서 임포트 시켜주도록 할게요. react에 있는 내장함수 us

Naver Blog

딥러닝의 원리 - 1. 딥러닝의 구조

Step01. 딥러닝의 구조 - 집값 모델 아래와 같이 데이터를 주고 45평일 때, 가격을 예측하는 법을 알아보겠습니다. 1. 전통적인 방법인 때려 맞추기 만약에 1차 함수의 형태로 가정할 때 y = ax + b로 정의할 수 있습니다. 이때의 a는 θ1으로 b는 θ0으로 정의하고 1차 시도 θ0 = 3, θ1 = 5일 때 위 사진의 빨간 선처럼 나타나게 됩니다. 즉, 완전히 결과와 다름으로 다른 값을 찾아봐야 합니다. 2차 시도 θ0 = 6, θ1 = 100일 때 마찬가지로 결과가 많이 벗어남으로 좋은 함수라고 볼 수 없습니다. 3차 시도 θ0 = 60, θ1 = 1000x일 때 결과가 좋아졌지만, 그래도 결과에서 조금 벗어났으므로 계속 시도를 해줍니다. 4차 시도 θ0 = 30, θ1 = 800x일 때 전의 결과보다 전반적으로 결과가 좋아진 것을 볼 수 있습니다. 하지만 이 때려 맞추는 방식은 많이 하면 할수록 좋아진다고 볼 수 없습니다. 이러한 연산은 언제 멈출 수 있을까? 무한

Naver Blog

딥러닝의 원리 - 2. 비용 함수

비용 함수 보통의 Cost Function의 정의는 J라는 함수를 많이 쓰입니다. J의 매개변수는 θ로 J(θ)로 쓰입니다. 전 글에서 보았듯이 1차함수에 θ0, θ1로 치환하여 본 것과 같이 θ는 벡터 형식으로 들어가게 됩니다. θ = [θ0 θ1] 즉, J(θ0, θ1)로 정의가 됩니다. 이를 식으로 나타내었을 때 아래와 같이 처리가 됩니다. 완벽히 이해는 못 하겠지만 h라는 함수에다가 학습 세트(x^(i))을 넣게 되면 임의의 가짜 y가 나오게 되고, 실제 y의 i 번째와 빼지게 되면 거의 동일하다면 0과 가까이 나오게 되고, 차이가 크다면 멀어지는 갭을 가지게 됩니다. 마지막의 제곱의 경우는, 음수일 경우를 대비해 양수로 만들어주기 위한 과정입니다. 이 과정을 사진으로 보게 되면 아래와 같이 동작하게 됩니다. 전 글에서 보았듯이 그래프가 가까워진 것처럼 Wrongness가 줄어든 것을 볼 수 있습니다. 이러한 방식으로 Wrongness를 minimize 시키는 방향으로 진행을

Naver Blog

딥러닝의 원리 - 3. 경사하강법

전 글에서 Cost Function을 이용해 결과 값을 도출하는 방식은 비효율적인 방법이라고 설명했습니다. 그러면 보완하기 위한 경사하강법에 대해 알아보도록 하겠습니다. 경사하강법 J함수가 가지고 있는 매개변수 θ는 w(weight)라고 표기할 수 있는데 J함수를 미분을 계속하여 가장 밑까지 도달하였을 때 멈추는 방식을 사용하는 것이 경사하강법입니다. J함수가 주어졌을 때 J함수를 미분하는 공식은 아래와 같이 구성할 수 있습니다. J(θ)를 편미분 한다음 a 만큼 옮기고 원래 J(θ) 만큼 옮긴다면 a 만큼 움직이면서 점점 아래로 이동하게 됩니다. 즉, 학습을 시킬 때마다 점점 결과에 가까워지는 것을 볼 수 있게 됩니다. 좀 더 가시적으로 표현하자면 위와 같이 표현할 수 있습니다. GDM(Gradient descent Method) - 경사하강법 MCM(Monte Carlo method) - 때려 맞추기(랜덤으로 학습) 파란 쪽으로 갈수록 Loss가 낮아지고, 빨간색으로 갈수록 Lo

Naver Blog

인터랙티브 디벨로퍼(김종민 개발자) - 언덕

안녕하세요. 예전부터 봐왔던 인터랙티브 디벨로퍼 김종민 님의 아래의 유튜브 영상을 보고 궁금한 점이 많아서 직접 제작을 해보게 되었습니다. 해당 유튜브 영상을 보게 되면, Javascript를 객체 지향적으로 코딩이 진행되는 것을 볼 수 있습니다. 또한 일반적인 엘리먼트들을 생성하고 움직이는 것이 아닌 canvas를 이용해서 제작이 된 것을 볼 수 있습니다. 처음에 코딩하는 방식을 보고, 저렇게 복잡하게 조합을 해야할까 였습니다. 근데 개발을 해보면 해볼수록 오히려 구조적으로 관리가 편하게 개발할 수 있어서 객체 지향적 코딩하는 방식을 채택했습니다. 첫 번째 과정 - 점을 찍어보자 시작하기 전에 있어서 매우 고심했던 부분이 있습니다. 첫 번째로 언덕을 만드는 것인데 이게 생각보다 많이 어려워서 몇 주는 잡아먹은 것 같습니다. 처음 해본 작업은 화면 기준으로 일정 거리만큼 띄어서 점을 찍어보는 것입니다. 이는 gap으로 부르도록 하겠습니다. 또한, 높이는 random을 사용하여 랜덤으

Naver Blog

탄성충돌 구현하기

안녕하세요. 처음에는 화면에 간단하게 공을 튀기는 것을 목표로 하고 만들었었는데 계속하다 보니 점점하고 싶은 게 많아져 버려서 결국 탄성충돌까지 와버렸네요. 우선 탄성충돌이란 두 물체가 부딪힐 때 충돌 전후에 두 물체가 충돌하는 계의 운동 에너지 총량이 일정한 충돌을 이르는 말을 뜻합니다. - 위키백과(탄성충돌) 쉽게 말하면 당구공이 서로 부딪히는 것을 말합니다. 또한 탄성 충돌과 (완전) 비탄성 충돌이 있는데요 자세한 내용은 아래의 강의에서 확인하시면 될 듯합니다. 첫 번째 - 공을 그려보자 처음으로 공을 그려보도록 하겠습니다. 우선 첫 시작은 동그라미를 그려보는 것 이겠죠. canvas를 이용하기 때문에 ctx.arc를 이용하면 쉽게 원을 그릴 수 있습니다. 원을 그리고 나서 한 가지 생각을 해봐야 할 것이 있습니다. 움직이는데 필요한 정보는 무엇인가? 우선 {x좌표, y좌표, 지름, x 스피드, y 스피드, 색상} 정도가 있겠네요. 이제 이것을 움직여보도록 만들어 보겠습니다.

Naver Blog

화살 피하기 게임 구현하기

안녕하세요. 이번에는 화살 피하기 게임을 구현해 보았습니다. 예전에 죽림 고수라는 게임에서 영감을 받아 제작을 해보았습니다. 죽림 고수는 플래시 게임으로 여기에서 게임을 진행해 보실 수 있습니다. 플래시가 서비스 종료를 했었는데 이걸 cdn으로 받아온다고 하더라구요. 유튜브를 따라보고 제작을 했던 작품이 있습니다. 아래의 링크에서 확인을 해보실 수 있고 유튜브 강의 또한 아래의 링크에서 확인해 보시면 되겠습니다. 사과와 화살 사과와 화살의 현란한 움직임~ portfolio-a7824.web.app [죽림 고수]와 [사과와 화살] 이 두 개를 합쳐보면 어떨까 싶어서 제작을 진행해 보았습니다. 첫 번째 - 생성 모션 생성 모션을 만들어 볼 것인데, 이것을 어떤 식으로 제작을 할까 고민을 했습니다. 그래서 빙글빙글 돌면서 나오면 어떨까 싶었고, 생각을 해본 대로 제작을 해보았습니다. 빙글빙글 돌게 하는 것은 canvas에서 간단하게 구현을 할 수 있습니다. canvas의 context에서

Naver Blog

백준 2839 - 설탕 배달

안녕하세요. 전에 dp 관련 문제를 풀어보아서 그런지 백준 2839의 설탕 배달은 쉽게 풀 수 있었습니다 2839번: 설탕 배달 문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가... www.acmicpc.net 문제를 보면 상근이가 배달하는 봉지의 최소 개수를 출력하는 것입니다. 간단하게 3킬로와 5킬로 봉지가 있고, 이를 가장 적게 만드는 것이 이 문제에서 원하는 것입니다. 겉으로 보면 매우 쉽게 느

Naver Blog

백준 2798 - 블랙잭

안녕하세요. 이번에는 2798번 문제의 블랙잭을 풀어보았습니다. 2798번: 블랙잭 2798번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 블랙잭 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 86495 40524 31519 45.876% 문제 카지노에서 제일 인기 있는 게임 블랙잭의 규칙은 상당히 쉽다. 카드의 합이 21을 넘지 않는 한도 내에서, 카드의 합을 최대한 크게 만드는 게임이다. 블랙잭은 카지노마다 다양한 규정이 있다. 한국 최고의 블랙잭 고수 김정인은 새로운 블랙잭 규칙을 만들어 상근, 창영이와 게임하려고 한다. 김정인 버전의 블랙잭에서 각 카드에는 양의 정... www.acmicpc.net 블랙잭은 완전 탐색 문제로, 모든 경우를 전부 돌아봐야 합니다. 완전 탐색 방법에는 아래와 같은 경우가 있습니다. 1) Brute Force 기법 2) 백트래킹 (Backtracking) 3) 순열 (Permutation) 4) 비트 마스

Naver Blog

백준 11729 - 하노이 탑 이동 순서

안녕하세요. 이번에는 하노이 탑 이동 순서를 풀어보았습니다. 11729번: 하노이 탑 이동 순서 11729번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 하노이 탑 이동 순서 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 48742 24086 18692 49.051% 문제 세 개의 장대가 있고 첫 번째 장대에는 반경이 서로 다른 n개의 원판이 쌓여 있다. 각 원판은 반경이 큰 순서대로 쌓여있다. 이제 수도승들이 다음 규칙에 따라 첫 번째 장대에서 세 번째 장대로 옮기려 한다. 한 번에 한 개의 원판만을 다른 탑으로 옮길 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다.... www.acmicpc.net 언뜻 보기에는 재미있어 보였습니다. 생각해 보니, 예전에 하노이 탑을 해본 적이 없더라구요 그래서 하노이 탑 원리도 조금 보고 공부도 좀 했습니다. 어떻게 접근해야 할지 몰라서 다른 풀이도 살펴보았습니다. 아래의 링크에서 더

Naver Blog

백준 2447 - 별 찍기 - 10

시도 중... 결과는 제대로 나오지만, 시간 초과가 나서 고민 중입니다.. ㅜㅜ.. 2447번: 별 찍기 - 10 문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대... www.acmicpc.net import sys print = sys.stdout.write def star(n, x, y): if n == 0: print('*') return if (x // n) % 3 == 1 and (y // n

Naver Blog

백준 1978 - 소수 찾기

안녕하세요. 오늘은 시간이 없어서 쉬운 문제를 풀었습니다.. ㅜㅜ 1978번: 소수 찾기 1978번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 소수 찾기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 98033 46373 37511 47.649% 문제 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오. 입력 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. 출력 주어진 수들 중 소수의 개수를 출력한다. 예제 입력 1 복사 4 1 3 5 7 예제 출력 1 복사 3 출처 데이터를 추가... www.acmicpc.net 문제는 간단합니다. 소수를 찾으면 되는 것입니다. 시간제한이 2초라고 되어 있어서, 대충 하면 안 될 것 같았는데 되는군요 n = int(input()) m = list(map(int, input().split())) def isPr

Naver Blog

백준 2231 - 분해합

안녕하세요. 이번에는 분해합 브루트 포스 문제 중에서 분해합을 풀어보았습니다. 2231번: 분해합 2231번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 분해합 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 192 MB 72347 33372 26396 46.136% 문제 어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이 된다. 따라서 245는 256의 생성자가 된다. 물론, 어떤 자연수의 경우에는 생성자가 없을 수도 있다. ... www.acmicpc.net 분해합 문제 또한 크게 어렵지 않았습니다. 그냥 모든 경우의 수를 돌아보면 되니까요.. 분해합의 경우는 역으로 찾아야 하더라구요. 245가 있을 경우 (245 + 2 + 4 + 5) = 256이고, 저희가 입력받을 숫자는 2

Naver Blog

백준 7568 - 덩치

안녕하세요. 이번에는 덩치라는 문제를 풀어보았습니다. 7568번: 덩치 문제 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩치가 각각 (x, y), (p, q)라고 할 때 x > p 그리고 y > q 이라면 우리는 A의 덩치가 B의 덩치보다 "더 크다"고 말한다. 예를 들어 어떤 A, B 두 사람의 덩치가 각각 (56, 177), (45, 165) 라고 한다면 A의 덩치가 B보다 큰 셈이 된다. 그런데 서로 다른 덩치끼리 크기를 정할 수 없... www.acmicpc.net 몸무게와 키를 보고 덩치 등수를 구하는 문제입니다. 몸무게와 키가 다른 이보다 작을 때 덩치 등수를 하나씩 더하여, 코드를 작성해 볼 수 있습니다. 문제 유형이 브루트 포스이기에 평소에 순위를 구하는 방식을 이용했습니다. 대신에, 변수 처리를 어떻게

Naver Blog

백준 1018 - 체스판 다시 칠하기

안녕하세요. 이번에는 체스판 다시 칠하기를 풀어보았습니다. 1018번: 체스판 다시 칠하기 문제 지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다. 체스판은 검은색과 흰색이 번갈아서 칠해져 있어야 한다. 구체적으로, 각 칸이 검은색과 흰색 중 하나로 색칠되어 있고, 변을 공유하는 두 개의 사각형은 다른 색으로 칠해져 있어야 한다. 따라서 이 정의를 따르면 체스판을 색칠하는 경우는 두 가지뿐이다. 하나는 맨 왼쪽 위 칸이 흰색인 경우, 하나... www.acmicpc.net 문제를 간단하게 살펴보면 입력받은 값에서 8x8만큼의 체스판을 만들 것인데, 어디에서든지 8x8 체스판이 완성되면 되는 것입니다. 그래서 체스판이 완성되려면 최소한으로 얼마나 바꿔야 하는지 알아내는 문제입니다. 이 문제의 유형은 브

Naver Blog

백준 1436 - 영화감독 숌

안녕하세요. 이번에는 영화감독 숌 문제를 풀어보았습니다. 1436번: 영화감독 숌 문제 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타워즈를 만들 때, 스타워즈 1, 스타워즈 2, 스타워즈 3, 스타워즈 4, 스타워즈 5, 스타워즈 6과 같이 이름을 지었고, 피터 잭슨은 반지의 제왕을 만들 때, 반지의 제왕 1, 반지의 제왕 2, 반지의 제왕 3과 같이 영화 제목을 지었다. 하지만 숌은 자신이 조지 루카스와 피터 잭슨을 뛰어넘는다는 것을 보여주기 위해서 영화 제목을 좀... www.acmicpc.net 영화감독 숌 문제는 숫자 666이 포함되는 숫자 면 됩니다. 영화 이름을 순서대로 나열해 보자면 1 : 666 2 : 1666 3 : 2666 ... 7 : 6660 8 : 6661 ... 13 : 6666 이런 식으로 됩니다. 처음에는 예

Naver Blog

백준 2750, 2751, 10989 - 수 정렬하기

안녕하세요. 이번에는 백준에서 정렬 문제를 풀어보았습니다. 2750번: 수 정렬하기 2750번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 수 정렬하기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 109179 62146 42867 58.311% 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 ... www.acmicpc.net 2751번: 수 정렬하기 2 2751번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 수 정렬하기 2 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 163533 44901 30711 30.074% 문제 N

Naver Blog

백준 2108 - 통계학

안녕하세요. 이번에는 2108번의 통계학을 풀어보았습니다. 2108번: 통계학 문제 수를 처리하는 것은 통계학에서 상당히 중요한 일이다. 통계학에서 N개의 수를 대표하는 기본 통계값에는 다음과 같은 것들이 있다. 단, N은 홀수라고 가정하자. 산술평균 : N개의 수들의 합을 N으로 나눈 값 중앙값 : N개의 수들을 증가하는 순서로 나열했을 경우 그 중앙에 위치하는 값 최빈값 : N개의 수들 중 가장 많이 나타나는 값 범위 : N개의 수들 중 최댓값과 최솟값의 차이 N개의 수가 주어졌을 때, 네 가지 기본 통계값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어... www.acmicpc.net 통계학 문제는 N 개만큼 입력을 받고, 그중에서 산술평균, 중앙값, 최빈값, 범위를 구하여 풀어보면 됩니다. 1. 산술평균 산술평균의 경우 전부 더한 다음, N으로 나눠주면 쉽게 풀 수 있는 문제입니다. 하지만 반올림을 해야 한다는 점 중요하더

Naver Blog

백준 1427 - 소트인사이드

안녕하세요. 이번에는 소트인사이드 문제를 풀어보았습니다. 1427번: 소트인사이드 1427번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 소트인사이드 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 47959 29696 24990 62.402% 문제 배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자. 입력 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. 출력 첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다. 예제 입력 1 복사 2143 예제 출력 1 복사 4321 예제 입력 2 ... www.acmicpc.net 소트인사이드 문제는.. 매우 간단하게 끝났습니다. 문자열을 리스트로 입력받은 뒤, 해당 리스트를 내림차순으로 정렬하면 해결되는 문제였습니다. n = list(map(int, input())) n.sort(reverse=True) for i

Naver Blog

백준 11650 - 좌표 정렬하기

안녕하세요. 저번에 소트인사이드 문제가 너무 쉽게 끝나서, 한 문제 더 풀어보겠습니다. 이번에는 좌표 정렬하기 문제입니다. 11650번: 좌표 정렬하기 11650번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 좌표 정렬하기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 65061 31323 23839 48.004% 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 x i 와 y i 가 주어진다. (-100,000 ≤ x... www.acmicpc.net 이 문제는 x좌표를 우선적으로 정렬한 뒤, x좌표가 같을 시 y좌표를 기준으로 정렬을 하면 되는 문제입니다. 접근 방법은.. 저번에 통계학 문제에서 사용했을 때와 비슷한

Naver Blog

백준 11651번 - 좌표 정렬하기 2

안녕하세요. 이번에는 좌표 정렬하기 2를 풀어보았습니다. 11651번: 좌표 정렬하기 2 11651번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 좌표 정렬하기 2 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 34582 22933 19414 68.036% 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 y좌표가 증가하는 순으로, y좌표가 같으면 x좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 x i 와 y i 가 주어진다. (-100,000 ≤... www.acmicpc.net 좌표 정렬하기 문제는 11650번의 좌표 정렬하기 문제에서 조금만 변형하여, 풀 수 있었습니다. 입력 값에서 순서만 변경하고, 출력에서 위치만 바꾸면 해결할 수 있습니다. import sys print = sys.stdout.writ

Naver Blog

백준 1181번 - 단어 정렬

안녕하세요. 이번에는 단어 정렬 문제를 풀어보았습니다. 1181번: 단어 정렬 1181번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 단어 정렬 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 256 MB 79340 32744 24382 40.262% 문제 알파벳 소문자로 이루어진 N개의 단어가 들어오면 아래와 같은 조건에 따라 정렬하는 프로그램을 작성하시오. 길이가 짧은 것부터 길이가 같으면 사전 순으로 입력 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길... www.acmicpc.net 단어 정렬 문제는, 우선적으로 최대 단어 수인 50칸 만큼의 리스트 만들었습니다. 단어 길이에 따라 리스트에 append를 통해서 리스트에 넣고, 반복문을 통해 최대 문자열 길이만큼 반복합니다. 그런 후, list(set(arr)) 을 통해서

Naver Blog

백준 10814번 - 나이순 정렬

안녕하세요. 이번에는 나이순 정렬 문제를 풀어보았습니다. 10814번: 나이순 정렬 10814번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 나이순 정렬 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 3 초 256 MB 65792 28331 21510 42.129% 문제 온라인 저지에 가입한 사람들의 나이와 이름이 가입한 순서대로 주어진다. 이때, 회원들을 나이가 증가하는 순으로, 나이가 같으면 먼저 가입한 사람이 앞에 오는 순서로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 온라인 저지 회원의 수 N이 주어진다. (1 ≤ N ≤ 100,000) 둘째 줄부터 N개의 줄에는 각 회원의 나이와 이름... www.acmicpc.net 이번 문제 또한 쉽게 풀 수 있었습니다. 최대 나이는 200까지이니, 200칸의 리스트를 만들어 줍니다. 그런 후, 입력받은 나이를 인덱스로 한 뒤 이름을 append로 추가해 주면 해결되도록 해보았습니다. 먼저 가입된 순서대로 출력을 하

Naver Blog

백준 18870번 - 좌표 압축

안녕하세요. 이번에는 좌표 압축 문제를 풀어보았습니다. 18870번: 좌표 압축 18870번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 좌표 압축 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 24872 10743 8155 41.341% 문제 수직선 위에 N개의 좌표 X 1 , X 2 , ..., X N 이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. X i 를 좌표 압축한 결과 X' i 의 값은 X i > X j 를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X 1 , X 2 , ..., X N 에 좌표 압축을 적용한 결과 X' 1 , X' 2 , ..., X' ... www.acmicpc.net 해당 문제에 있어서, 우선적으로 범위 제한을 봤습니다. 그동안 사용했던 방식을 사용하려 했지만, Xi의 입력이 -10^9~ 10^9이므로, Xi 만큼의 크기인 리스트를 만드는 것은 매우 무리가 있을 것으로 판단되어 다른 방법을 사용했습니다.

Naver Blog

백준 15649번 - N과 M (1)

안녕하세요. 이번에는 N과 M (1) 문제를 풀어보았습니다. 15649번: N과 M (1) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 예제 입력 1 복사 3 1 예제 출력 1 복사 1 2 3 예제 입력 2 복사 4 2 예제 ... www.acmicpc.net 이 문제의 경우는 첫 번째 입력 N 숫자만큼 두 번째 입력 M 번 반복하면 되는 것입니다. 초반에는 매우 쉽게 느껴졌었는데, 막상 해보니까 어렵더라고요.. 단순 for로만 해도 되지 않을까 싶었다가 처음부터 다시 생각을 해봤습니다.

Naver Blog

백준 15650번 - N과 M (2)

안녕하세요. 이번에는 N과 M (2) 문제를 풀어보았습니다. 15650번: N과 M (2) 15650번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 N과 M (2) 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 512 MB 34727 26061 19014 74.588% 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력... www.acmicpc.net N과 M (2) 문제는 (1) 문제와는 다르게, 같은 숫자와 중복 숫자가 있으면 안 됩니다. 문제 접근 방법은, 일차적으로 같은 숫자를 먼저 제거하는 과정을 거친 뒤, 정렬을 하여, arr에 없다면 출력하고 arr에 추가를 합니다.

Naver Blog

백준 15651번 - N과 M (3)

안녕하세요. 이번에는 N과 M (3)를 풀어보았습니다. 15651번: N과 M (3) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 7) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 예제 입력 1 복사 3 1 예제 출력 1 복사 1 2 3 예제 입력... www.acmicpc.net N과 M 문제는 같은 숫자를 제외한 모든 경우의 수를 출력하면 되는 문제입니다. 모든 경우를 출력하는 건 N과 M (1)에서 다뤘었기 때문에 바로 풀 수 있었습니다. import sys print = sys.stdout.write n,

Naver Blog

백준 15652번 - N과 M (4)

안녕하세요. 이번에는 N과 M (4) 문제를 풀어보았습니다. N과 M 문제는 이게 마지막이네요 15652번: N과 M (4) 문제 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 M개를 고른 수열 같은 수를 여러 번 골라도 된다. 고른 수열은 비내림차순이어야 한다. 길이가 K인 수열 A가 A 1 ≤ A 2 ≤ ... ≤ A K-1 ≤ A K 를 만족하면, 비내림차순이라고 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공... www.acmicpc.net 이번 N과 M 문제는 시작점을 왼쪽의 있는 숫자부터 출력하면 되는 문제입니다. 이번 문제는 전에 풀었던 N과 M 문제를 기반으로 수정하여 해결했습니다. 조금만 수정하면 해결할 수 있어서 금방 풀 수

Naver Blog

백준 9663번 - N-Queen

안녕하세요. 이번에는 N-Queen 문제를 풀어보았습니다. 9663번: N-Queen 9663번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 N-Queen 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 10 초 128 MB 56889 28522 18698 49.656% 문제 N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (1 ≤ N < 15) 출력 첫째 줄에 퀸 N개를 서로 공격할 수 없게 놓는 경우의 수를 출력한다. 예제 입력 1 복사 8 ... www.acmicpc.net N-Queen 문제를 잘 몰랐어서 힌트를 봤었는데 노래가... 있네요 처음에는 2차원 배열로 체스판을 만들어서 해야 할까 고민도 많이 해봤고, 1차원 배열로 해서 하는 방법이 뭐가 있을까도 많이 생각해 봤습니다. 시간 복잡도를 또 생각을

Naver Blog

백준 14888 - 연산자 끼워넣기

안녕하세요. 이번에는 연산자 끼워넣기를 풀어보았습니다. 14888번: 연산자 끼워넣기 문제 N개의 수로 이루어진 수열 A 1 , A 2 , ..., A N 이 주어진다. 또, 수와 수 사이에 끼워넣을 수 있는 N-1개의 연산자가 주어진다. 연산자는 덧셈(+), 뺄셈(-), 곱셈(×), 나눗셈(÷)으로만 이루어져 있다. 우리는 수와 수 사이에 연산자를 하나씩 넣어서, 수식을 하나 만들 수 있다. 이때, 주어진 수의 순서를 바꾸면 안 된다. 예를 들어, 6개의 수로 이루어진 수열이 1, 2, 3, 4, 5, 6이고, 주어진 연산자가 덧셈(+) 2개, 뺄셈(-) 1개, 곱셈(×) 1개, 나눗셈(÷) 1개인 경우에는 총 6... www.acmicpc.net 연산자 끼워넣기는 +, -, *, /의 수가 N - 1만큼 주어지고, 주어진 만큼 연산하여 최대, 최솟값을 구하면 되는 문제입니다. 이 문제는 백트래킹 문제이므로, 모든 경우의 수를 선택한 다음 연산하여 풀어보면 됩니다. 이때의 연산 순

Naver Blog

백준 1003 - 피보나치 함수

안녕하세요. 이번에는 피보나치 함수 문제를 풀어보았습니다. 1003번: 피보나치 함수 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3) 을 호출하면 다음과 같은 일이 일어난다. fibonacci(3) 은 ... www.acmicpc.net 1. 구현 문제 이 문제에서 구현적인 문제는 미리 제공해 줌으로써 큰 문제는 없습니다. 하지만 0이 N번 1이 M번 들어갔는지를 체크하는 문제인 것인데 처음에는 어떻게 하면 해결할 수 있을까 하다가 피보나치 규칙을 보고 바로 찾을 수 있었습니다. d = [0, 0, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144,

Naver Blog

백준 9184 - 신나는 함수 실행

안녕하세요. 이번에는 신나는 함수 실행을 풀어보았습니다. 9184번: 신나는 함수 실행 문제 재귀 호출만 생각하면 신이 난다! 아닌가요? 다음과 같은 재귀함수 w(a, b, c)가 있다. if a <= 0 or b <= 0 or c <= 0, then w(a, b, c) returns: 1 if a > 20 or b > 20 or c > 20, then w(a, b, c) returns: w(20, 20, 20) if a < b and b < c, then w(a, b, c) returns: w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c) otherwise i... www.acmicpc.net 문제를 보니까.. 안 신나네요.. ㅜㅜ 이번의 문제 유형은 DP입니다. DP는 큰 문제를 작은 문제로 쪼게어 풀면 됩니다. 이때의 시간 복잡도를 위해서 메모제이션을 사용해 주면 됩니다. 구현 문제 구현에 관해서는 딱히 할 필요는 없습니다. 이 부분을 그대로 코드

Naver Blog

백준 1904 - 01타일

안녕하세요. 이번에는 01타일 문제를 풀어보았습니다. 1904번: 01타일 1904번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 01타일 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.75 초 (추가 시간 없음) 256 MB 56360 18450 14737 32.585% 문제 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰여진 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나... www.acmicpc.net 문제 풀이 처음에는 이 문제를 어떻게 풀면 좋을지 생각을 하다가, 조금 검색을 해봤습니다. 그러다 보니까 한 가지 놓친 점이 있었더라고요. 바로 개수였습니다. N = 1 일 때, 1개 ( 1 ) N = 2 일 때, 2개 ( 11, 00 ) N =

Naver Blog

백준 9461 - 파도반 수열

안녕하세요. 이번에는 파도반 수열을 풀어보았습니다. 9461번: 파도반 수열 9461번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 파도반 수열 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 59477 25597 20948 41.583% 문제 오른쪽 그림과 같이 삼각형이 나선 모양으로 놓여져 있다. 첫 삼각형은 정삼각형으로 변의 길이는 1이다. 그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다. 나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다. 파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다. P(1)부터... www.acmicpc.net 파도반 수열은 정삼각형을 하나씩 하나씩 추가하는 수열입니다. 이를 숫자로 보게 되면 1, 1, 1, 2, 2, 3, 4, 5, 7, 9입니다. 여기서 점화식을 구해봐야 하는데, 규칙성을 보도록 하겠습니다. N이 6이라고 가정했을 때, P(6)을

Naver Blog

백준 1149 - RGB거리

안녕하세요. 이번에는 RGB 거리 문제를 풀어보았습니다. 1149번: RGB거리 문제 RGB거리에는 집이 N개 있다. 거리는 선분으로 나타낼 수 있고, 1번 집부터 N번 집이 순서대로 있다. 집은 빨강, 초록, 파랑 중 하나의 색으로 칠해야 한다. 각각의 집을 빨강, 초록, 파랑으로 칠하는 비용이 주어졌을 때, 아래 규칙을 만족하면서 모든 집을 칠하는 비용의 최솟값을 구해보자. 1번 집의 색은 2번 집의 색과 같지 않아야 한다. N번 집의 색은 N-1번 집의 색과 같지 않아야 한다. i(2 ≤ i ≤ N-1)번 집의 색은 i-1번, i+1번 집의 색과 같지 않아야 한다. 입력 첫째 줄에 집의 수 N(2 ≤ N ... www.acmicpc.net 문제 풀이 이 문제의 경우는 각 한 줄에 R, G, B 값이 들어 있고 한 가지 색을 골라 최솟값을 만들면 되는 문제입니다. 하지만, 선택한 색 중에서 위아래로 같은 색이면 안 되는 문제입니다. 제가 어렵게 푼 감이 없잖아 있는 거 같지만,

Naver Blog

백준 1932 - 정수 삼각형

안녕하세요. 이번에는 정수 삼각형 문제를 풀어보았습니다. 1932번: 정수 삼각형 1932번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 정수 삼각형 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 58133 32394 24266 58.582% 문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층... www.acmicpc.net 문제 풀이 이 문제는 각 줄마다 숫자를 하나씩 고르되, 최댓값이 되도록 만들면 되는 겁니다. 이를 위해서는 모든 경우의 수를 보고 판단하면 됩니다. 먼저 규칙성을 알아보겠습니다. 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 의 값들이 있을 때, 저의 경우는 인덱스로 판별을 했습니다. 1번

Naver Blog

백준 2579 - 계단 오르기

안녕하세요. 이번에는 계단 오르기를 풀어보았습니다. 2579번: 계단 오르기 문제 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점수를 얻게 된다. <그림 1> 예를 들어 <그림 2>와 같이 시작점에서부터 첫 번째, 두 번째, 네 번째, 여섯 번째 계단을 밟아 도착점에 도달하면 총 점수는 10 + 20 + 25 + 20 = 75점이 된다. <그림 2> 계단 오르는 데는 다음과 같은 규칙이 있다. 계단은 한 번에 한 계단씩 또는 두 계단씩 오를 수 있다. 즉, 한 계단을... www.acmicpc.net 문제 풀이 [백준 2579번] 계단 오르기 DP로 분류된 문제 조건 1. 계단을 오를때는 1칸 또는 2칸까지 한번에 오를수있다. 2. 연속된 3칸은 오를 수 없다. 3. 마지막 계단은 무조건 밟아야한다. 풀이 마지막 계단을 무조건 밟아야한다면 두

Naver Blog

백준 1463 - 1로 만들기

안녕하세요. 이번에는 1로 만들기를 풀어보았습니다. 1463번: 1로 만들기 1463번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 1로 만들기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 0.15 초 ( 하단 참고 ) 128 MB 184793 59429 37779 31.938% 문제 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지 이다. X가 3으로 나누어 떨어지면, 3으로 나눈다. X가 2로 나누어 떨어지면, 2로 나눈다. 1을 뺀다. 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 최솟값을 출력하시오. 입력 첫째 ... www.acmicpc.net 이 문제는 (설명만) 간단합니다. 1. X가 3으로 나누어떨어지면, 3으로 나눈다. 2. X가 2로 나누어떨어지면, 2로 나눈다. 3. 1을 뺀다. 처음에 했던 방법을 알려드리겠습니다. 첫 번째 풀이(실패) 입력받은 숫자 n이 있을 때 n이 3으로

Naver Blog

백준 11047 - 동전 0

안녕하세요. 이번에는 동전 0 문제를 풀어보았습니다. 11047번: 동전 0 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 A i 가 오름차순으로 주어진다. (1 ≤ A i ≤ 1,000,000, A 1 = 1, i ≥ 2인 경우에 A i 는 A i-1 의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개... www.acmicpc.net 이 문제는 돈이 주어졌을 때 필요한 동전의 개수를 구하면 되는 문제입니다. 큰 동전부터 잘라서, 계산해 주면 해결이 되는 문제입니다. n, m = map(int, input().split()) coin = [0 for i in range(n)]

Naver Blog

백준 11399 - ATM

안녕하세요. 이번에는 ATM 문제를 풀어보았습니다. 11399번: ATM 11399번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 ATM 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 59112 39022 31844 66.675% 문제 인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 P i 분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P 1 = 3, P 2 =... www.acmicpc.net 문제 풀이 이 문제는 돈을 뽑는 시간을 최소한으로 줄이면 되는 문제입니다. 3 1 4 3 2가 있다면 3 + (3 + 1) + (3 + 1 + 4) + (3 + 1 + 4 + 3) + (3 + 1 + 4 + 3 + 2)가 되어서 39가 됩니다. 만약

Naver Blog

백준 1541 - 잃어버린 괄호

안녕하세요. 이번에는 잃어버린 괄호 문제를 풀어보았습니다. 1541번: 잃어버린 괄호 1541번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 잃어버린 괄호 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 41699 20506 16464 48.999% 문제 세준이는 양수와 +, -, 그리고 괄호를 가지고 식을 만들었다. 그리고 나서 세준이는 괄호를 모두 지웠다. 그리고 나서 세준이는 괄호를 적절히 쳐서 이 식의 값을 최소로 만들려고 한다. 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 프로그램을 작성하시오. 입력 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’... www.acmicpc.net 문제 풀이 이 문제는 괄호를 적절히 사용하여 최솟값으로 만들면 되는 문제입니다. 55-50+40 이 있을 때 55-(50 + 40) = 55-50-40 = -35로 만들면 되는 문제입니다. 이 문제에서의 핵심은 변수 저장을 어떻게 할지,

Naver Blog

백준 10828 - 스택

안녕하세요. 이번에는 스택 문제를 풀어보았습니다. 10828번: 스택 문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 스택에 들어있는 정수의 개수를 출력한다. empty: 스택이 비어있으면 1, 아니면 0을 출력한다. top: 스택의 가장 위에 있는 정수를 출력한다. 만약 스택에 들어있는 정수가 없는 경우에는 -1을 출력한다. 입력 첫째 ... www.acmicpc.net 문제 풀이 이번 문제는 좀 재미있게 풀었던 것 같습니다. push, pop 등을 직접 구현하면 되는 문제입니다. 저의 경우는 리스트를 이용해서 구현을 해보았습니다. push는 리스트의 insert pop은 리스트의 pop size와 empty는 파이썬의

Naver Blog

백준 1037 - 약수

안녕하세요. 이번에는 약수를 풀어보았습니다. 1037번: 약수 1037번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 약수 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 35826 18387 15943 51.659% 문제 양수 A가 N의 진짜 약수가 되려면, N이 A의 배수이고, A가 1과 N이 아니어야 한다. 어떤 수 N의 진짜 약수가 모두 주어질 때, N을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N의 진짜 약수의 개수가 주어진다. 이 개수는 50보다 작거나 같은 자연수이다. 둘째 줄에는 N의 진짜 약수가 주어진다. 1,000,000보다 작거나 같고... www.acmicpc.net 문제 풀이 이 문제는 약수를 보고 숫자를 구하면 되는 문제입니다. 이 문제를 어떻게 접근하면 좋을까 하다가, 최고 작은 값과 최고 큰 값을 곱한다면 최종 답을 구할 수 있었습니다. min과 max를 이용해서 곱하여도 되고, 정렬 후 인덱스로 접근하여 해결할 수

Naver Blog

백준 10773 - 제로

안녕하세요. 이번에는 제로 문제를 풀어보았습니다. 10773번: 제로 문제 나코더 기장 재민이는 동아리 회식을 준비하기 위해서 장부를 관리하는 중이다. 재현이는 재민이를 도와서 돈을 관리하는 중인데, 애석하게도 항상 정신없는 재현이는 돈을 실수로 잘못 부르는 사고를 치기 일쑤였다. 재현이는 잘못된 수를 부를 때마다 0을 외쳐서, 가장 최근에 재민이가 쓴 수를 지우게 시킨다. 재민이는 이렇게 모든 수를 받아 적은 후 그 수의 합을 알고 싶어 한다. 재민이를 도와주자! 입력 첫 번째 줄에 정수 K가 주어진다. (1 ≤ K ≤ 100,000) 이후 K개의 줄에 정수가 1개씩 주어진다. 정수는 0에서 1,0... www.acmicpc.net 문제 풀이 이 문제는 입력받은 숫자 n 만큼 스택에 넣고 0이 나오게 된다면 입력받았던 숫자를 제거하면 됩니다. 그런 후 스택에 있는 합계를 구하면 문제를 해결할 수 있습니다. 예를 들어서 아래와 같이 있을 때 4 3 0 4 0 [3] : 3입력 []

Naver Blog

딥러닝 - RNN으로 손글씨 이미지 분류하기

안녕하세요. 한참 전에 구매했던 강의를 다시 보면서 이제야 공부를 하네요.. 이미지는 MNIST에 있는 데이터를 이용하였습니다. 저는 코랩을 이용하여 진행했습니다. !강의를 보고 복습 겸 작성하는 내용이라 정확하지 않은 내용이 있을 수 있습니다. 전처리 텐서플로우를 이용해서 진행을 하구요. 데이터 처리를 위한 pandas와 numpy 등을 이용했습니다. import tensorflow as tf from tensorflow import keras from keras.layers import Dense from keras.models import Sequential import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import warnings from IPython.display import Image warnings.filterwarnings('ignore') %mat

Naver Blog

백준 9012 - 괄호

안녕하세요. 이번에는 괄호 문제를 풀어보았습니다. 9012번: 괄호 9012번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 괄호 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 110365 49734 35958 43.920% 문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS ... www.acmicpc.net 문제 풀이 이 문제는 '(' 괄호와 ')'가 서로 맞으면 해결되는 문제입니다. 저는 '('가 나오면 +1을 ')'가 나오면 -1을 연산하도록 하였습니다. 그런 후에 연산하여 나온 값이 0보다 작게 된다면 괄호가 맞지 않아서 NO를 출력하면 되는 문제입니다

Naver Blog

백준 4673 - 셀프 넘버

안녕하세요. 이번에는 셀프 넘버를 풀어보았습니다. 4673번: 셀프 넘버 문제 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, 이 수를 시작해서 n, d(n), d(d(n)), d(d(d(n))), ...과 같은 무한 수열을 만들 수 있다. 예를 들어, 33으로 시작한다면 다음 수는 33 + 3 + 3 = 39이고, 그 다음 수는 39 + 3 + 9 = 51, 다음 수는 51 + 5 + 1 = 57이다. 이런... www.acmicpc.net 문제 풀이 이 문제의 경우는 1~10,000까지의 숫자 중 셀프 넘버를 출력하면 되는 문제입니다. 셀프 넘버는 생성자가 없는 숫자입니다. 여기서 생성자란, 자기 자신과 각각의 숫자를 더한 값입니다. 예시로 2의 생성자를 보겠습니다. 2의 생성자는 1(

Naver Blog

백준 4949 - 균형잡힌 세상

안녕하세요. 이번에는 균형잡힌 세상 문제를 풀어보았습니다. 4949번: 균형잡힌 세상 문제 세계는 균형이 잘 잡혀있어야 한다. 양과 음, 빛과 어둠 그리고 왼쪽 괄호와 오른쪽 괄호처럼 말이다. 정민이의 임무는 어떤 문자열이 주어졌을 때, 괄호들의 균형이 잘 맞춰져 있는지 판단하는 프로그램을 짜는 것이다. 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다. 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다. 모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다. 모든 오른쪽 괄호들은 자신과 짝을 이룰 수 ... www.acmicpc.net 문제 풀이 문제 번호를 보면 4949.. 번호마저 균형 잡혔네요. 아무튼 이 문제는 소괄호()로 열렸다면 소괄호로 닫혀야 하고 대괄호[]로 열렸다면 대괄호로 닫혀야 합니다. ( [ ] ) 이런 식으로 잘 균형이 맞으면 yes를 출력 (

Naver Blog

백준 1874 - 스택 수열

안녕하세요. 이번에는 스택 수열 문제를 풀어보았습니다. 1874번: 스택 수열 문제 스택 (stack)은 기본적인 자료구조 중 하나로, 컴퓨터 프로그램을 작성할 때 자주 이용되는 개념이다. 스택은 자료를 넣는 (push) 입구와 자료를 뽑는 (pop) 입구가 같아 제일 나중에 들어간 자료가 제일 먼저 나오는 (LIFO, Last in First out) 특성을 가지고 있다. 1부터 n까지의 수를 스택에 넣었다가 뽑아 늘어놓음으로써, 하나의 수열을 만들 수 있다. 이때, 스택에 push하는 순서는 반드시 오름차순을 지키도록 한다고 하자. 임의의 수열이 주어졌을 때 스택을 이용해 그 수열을 만들 수 있는지 없는지... www.acmicpc.net 문제 풀이 이 문제는 수열들을 이용해서 입력과 똑같이 만들면 되는 문제입니다. 입력과 똑같이 만들기 위해 push와 pop을 어떻게 진행하는지를 알아보면 됩니다. 예시로) 4 3 6 8 7 5 2 1 이 있다고 해보면 아래와 같이 진행이 됩니다

Naver Blog

백준 18258 - 큐2

안녕하세요. 이번에는 큐2 문제를 풀어보았습니다. 18258번: 큐 2 문제 정수를 저장하는 큐를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여섯 가지이다. push X: 정수 X를 큐에 넣는 연산이다. pop: 큐에서 가장 앞에 있는 정수를 빼고, 그 수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 큐에 들어있는 정수의 개수를 출력한다. empty: 큐가 비어있으면 1, 아니면 0을 출력한다. front: 큐의 가장 앞에 있는 정수를 출력한다. 만약 큐에 들어있는 정수가 없는 경우에는 -1을 출력한다. back: 큐의 가장 ... www.acmicpc.net 큐2 문제는 스택 문제와 유사합니다. 하지만 시간 복잡도가 O(1)이라는 점을 염두에 두어야 하더라고요.. 계속 시간 초과가 나서 다른 블로그를 참고했습니다. [백준] 18258번 큐 2 / 파이썬(python) # 문제 링크 www.acmicpc.n

Naver Blog

백준 2164 - 카드2

안녕하세요. 이번에는 카드2 문제를 풀어보았습니다. 2164번: 카드2 2164번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 카드2 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 (추가 시간 없음) 128 MB 43083 22417 18581 52.648% 문제 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 한 장 남을 때까지 반복하게 된다. 우선, 제일 위에 있는 카드를 바닥에 버린다. 그 다음, 제일 위에 있는 카드를 제일 ... www.acmicpc.net 문제 풀이 이 문제는 큐를 잘 다루면 되는 문제입니다. 6이 입력받았다고 하면 아래와 같은 로직으로 이루어집니다. 6 입력 queue = [1, 2, 3, 4, 5, 6] 맨 앞 빼기 queue = [2, 3, 4, 5, 6] 맨 앞을 맨 뒤로 que

Naver Blog

백준 11866 - 요세푸스 문제0

안녕하세요. 이번에는 요세푸스 문제0 을 풀어보았습니다. 11866번: 요세푸스 문제 0 11866번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 요세푸스 문제 0 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 32417 18571 15819 57.332% 문제 요세푸스 문제는 다음과 같다. 1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다. 이제 순서대로 K번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서... www.acmicpc.net 문제 풀이 이 문제는 N과 K를 입력받습니다. 그런 후, 1~N까지 원을 이루면서 앉아 있고 K 번째마다 없애면 되는 문제입니다. 예시 입력 : 7 3 1 2 3 4 5 6 7 1 2 3 4 5 6 7 => K 번째(3번째)마다 값을

Naver Blog

백준 1966 - 프린터 큐

안녕하세요. 이번에는 프린터 큐 문제를 풀어보았습니다. 1966번: 프린터 큐 1966번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 프린터 큐 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 41204 22936 18148 57.255% 문제 여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개... www.acmicpc.net 문제 풀이 이 문제는 문서의 개수 N과 M 번째 문서가 중요도에 따라 몇 번째로 출력이 되는지 알아내면 되는 문제입니다. 문서의 조건은 다음과 같습니다. 1. 현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다. 2. 나머지 문서들

Naver Blog

정보보안기사 - 문제 정리

제가 많이 틀리는 기준으로 정리했습니다. 침입 탐지 시스템 ( IDS ) 지식기반 침입 탐지 행위기반 침입 탐지 알려진것과 일치하는 경우를 침입으로 간주 패턴을 분석한 후 입력된 패턴과 비교하여 침입을 탐지 - 전문가 시스템 - 신경망 - 시그니처 분석 - 페트리넷 - 상태전이 분석 - 유전 알고리즘 등 - 전문가 시스템 - 신경망 - 통계적 방법 - 컴퓨터 면역학 - 데이터 마이닝 - HMM(Hidden Markov Model) - 기계학습 공개키 (인수분해 기반) 종류 설명 RSA Rabin (RSA보다 빠름) 2개의 큰 소수 p, q의 곱 n을 공용키로 한다. Goldwasser-Micali 암호문으로부터 평문의 어떤 정보도 노출되지 않는 암호방식. 공개키 (이산대수 기반) 종류 설명 Elgamal 같은 평문에서 다른 암호문의 생성이 가능하다.(하지만 길이가 두배로 증가) Diffie-Hellman 1. 중간 관리자(키 관리센터) 없이 공개키 전달 가능. 2. 키 전달시 도청되

Naver Blog

백준 10866 - 덱

안녕하세요. 이번에는 덱 문제를 풀어보았습니다. 10866번: 덱 문제 정수를 저장하는 덱(Deque)를 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 여덟 가지이다. push_front X: 정수 X를 덱의 앞에 넣는다. push_back X: 정수 X를 덱의 뒤에 넣는다. pop_front: 덱의 가장 앞에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. pop_back: 덱의 가장 뒤에 있는 수를 빼고, 그 수를 출력한다. 만약, 덱에 들어있는 정수가 없는 경우에는 -1을 출력한다. size: 덱에 들어있는... www.acmicpc.net 문제 풀이 이 문제는 deque를 사용하면 쉽게 해결할 수 있습니다. from collections import deque n = int(input()) queue = deque() res = [] for i in range(n): struct = inpu

Naver Blog

백준 1021 - 회전하는 큐

안녕하세요. 이번에는 회전하는 큐 문제를 풀어보았습니다. 1021번: 회전하는 큐 문제 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다. 지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다. 첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a 1 , ..., a k 이었던 것이 a 2 , ..., a k 와 같이 된다. 왼쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a 1 , ..., a k 가 a 2 , ..., a k , a 1 이 된다. 오른쪽으로 한 칸 이동시킨다. 이 연산을 수행하면, a 1 , ..... www.acmicpc.net 문제 풀이 문제에 관한 설명은 아래의 블로그에서 읽어보시면 될 것 같습니다! [백준 / JAVA] 백준 알고리즘 1021번 회전하는 큐 - c번째 알파카의 개발 낙서장 지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지

Naver Blog

백준 5430 - AC

안녕하세요. 이번에는 AC 문제를 풀어보았습니다. 5430번: AC 문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 수의 순서를 뒤집는 함수이고, D는 첫 번째 수를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다. 예를 들어, "RDD"는 배열을 뒤집은 다음 처음 두 수를 버리는 함수이다. 배열... www.acmicpc.net 이 문제는 R(뒤집기)와 D(버리기)를 중심적으로 처리하면 됩니다. 위의 예제에서 첫 번째 예제를 해보겠습니다. 입력) RDD 4 [1, 2, 3, 4] RDD 이므로 R(뒤집기) D(버리기) D(버리기) 진행을 하면 됩니다. R(뒤집기) [1, 2, 3

Naver Blog

백준 2630 - 색종이 만들기

안녕하세요. 이번에는 색종이 만들기 문제를 풀어보았습니다. 2630번: 색종이 만들기 문제 아래 <그림 1>과 같이 여러개의 정사각형칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2 k , k는 1 이상 7 이하의 자연수) 이라면 종이를 자르는 규칙은 다음과 같다. 전체 종이가 모두 같은 색으로 칠해져 있지 않으면 가로와 세로로 중간 부분을 잘라서 <그림 2>의 I, II, III, IV와 같이... www.acmicpc.net 문제 풀이 이 문제의 유형은 분할 정복입니다. 분할 정복은 상위의 해답을 구하기 위해, 아래로 내려가면서 하위의 해답을 구하는 방식입니다. 이는 동적계획법(DP)랑 많이 유사해서 헷갈리기도 하네요.. 사진 출처 : https://syuj

Naver Blog

백준 1992 - 쿼드트리

안녕하세요. 이번에는 쿼드트리 문제를 풀어보았습니다. 1992번: 쿼드트리 1992번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 쿼드트리 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 27317 16826 13189 60.908% 문제 흑백 영상을 압축하여 표현하는 데이터 구조로 쿼드 트리(Quad Tree)라는 방법이 있다. 흰 점을 나타내는 0과 검은 점을 나타내는 1로만 이루어진 영상(2차원 배열)에서 같은 숫자의 점들이 한 곳에 많이 몰려있으면, 쿼드 트리에서는 이를 압축하여 간단히 표현할 수 있다. 주어진 영상이 모두 0으로만 되어 있으면 압축 결과는 "0"이... www.acmicpc.net 문제 풀이 이 문제는 데이터 압축한 결과를 출력하면 되는 문제입니다. LeftUp에 대한 경우만 조사해 보도록 하겠습니다. 4등분으로 나눈 후 전부 1또는 0일 경우 숫자 반환 4등분으로 나눈 후 전부 1또는 0일 경우 숫자 반환 현재 반환값 :

Naver Blog

백준 1920 - 수 찾기

안녕하세요. 이번에는 수 찾기를 풀어보았습니다. 1920번: 수 찾기 1920번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 수 찾기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 128446 38615 25543 30.150% 문제 N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. ... www.acmicpc.net 문제 풀이 이 문제의 유형은 이분 탐색입니다. 첫 번째 입력받은 숫자들에서, 두 번째 입력받은 숫자들이 있는지를 판별하면 되는 문제입니다. 자세한 개념은 아래의 링크에서 확인하실 수 있습니다. 이진 탐색 (Binary search) 개념 및 구현 목차

Naver Blog

백준 9935 - 문자열 폭발

안녕하세요. 이번에는 문자열 폭발 문제를 풀어보았습니다, 9935번: 문자열 폭발 9935번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 문자열 폭발 다국어 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 (추가 시간 없음) 128 MB 38519 8781 6041 23.172% 문제 상근이는 문자열에 폭발 문자열을 심어 놓았다. 폭발 문자열이 폭발하면 그 문자는 문자열에서 사라지며, 남은 문자열은 합쳐지게 된다. 폭발은 다음과 같은 과정으로 진행된다. 문자열이 폭발 문자열을 포함하고 있는 경우에, 모든 폭발 문자열이 폭발하게 된다. 남은 문자열을 순서대로 이어 붙여 새로운 문자열을 만든다.... www.acmicpc.net 문제 풀이 이 문제의 경우는 첫 번째에는 문자열, 두 번째에는 폭탄 문자열이 주어지고 폭탄 문자열이 있다면, 없애버리면 되는 문제입니다. 예제 입력 1을 예시로 들어보도록 하겠습니다. 문자열 : mirkovC4nizCC44 폭탄 문자열 :

Naver Blog

백준 2869 - 달팽이는 올라가고 싶다

안녕하세요. 이번에는 달팽이는 올라가고 싶다 문제를 풀어보았습니다. 2869번: 달팽이는 올라가고 싶다 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. 예제 입력 1 복사... www.acmicpc.net 문제 풀이 문제 자체는 그렇게 어려워 보이지 않습니다. 하지만 시간제한을 보아하니 사악하네요 이 문제로는 올라갔다가 내려가고를 반복적으로 연산하여 해결하는 것이 불가능합니다. A, B, V의 숫자 범위를 보면 10억 이

Naver Blog

백준 2606 - 바이러스

안녕하세요. 이번에는 바이러스 문제를 풀어보았습니다. 2606번: 바이러스 2606번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 바이러스 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 91574 43245 29353 45.685% 문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 <그림 1>과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐... www.acmicpc.net 문제의 유형 : BFS / DFS 문제 풀이 이 문제는 각 노드(컴퓨터)끼리 연결되어 있고, 연결되어 있는 노드(중복 X)들의 개수를 출력하면 되는 문제입니다. 저는 깊이 우선 탐색(DFS)을 사용해서 문제를 해결했습니다. BFS를 사용해도 해결할

Naver Blog

백준 1260 - DFS와 BFS

안녕하세요. 이번에는 DFS와 BFS 문제를 풀어보았습니다. 1260번: DFS와 BFS 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사이에 여러 개의 간선이 있을 수 있다.... www.acmicpc.net 문제의 유형 : DFS / BFS 문제 풀이 이번 문제는 DFS와 BFS를 둘 다 구현하면 되는 문제입니다. 마찬가지로 DFS는 스택으로 구현을 할 수 있고 BFS는 큐 또는 덱을 이용해서 구현을 할 수 있습니다. 개념이 완전히 잡히

Naver Blog

백준 2667 - 단지번호붙이기

안녕하세요. 이번에는 단지번호붙이기 문제를 풀어보았습니다. 2667번: 단지번호붙이기 2667번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 단지번호붙이기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 128 MB 111125 47239 29795 40.396% 문제 <그림 1>과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여기서 연결되었다는 것은 어떤 집이 좌우, 혹은 아래위로 다른 집이 있는 경우를 말한다. 대각선상에 집이 있는 경우는 연결된 것이 아니... www.acmicpc.net 문제의 유형 : DFS / BFS 문제 풀이 이 문제는 DFS 또는 BFS로 해결할 수 있습니다. 저는 DFS를 생각하면서 만들어봤는데, 맞게 했는지 잘 모르겠네요. c visit이라는 리스트를 두고, 들어갔다면 True로 바꿈으로써 다

Naver Blog

백준 1012 - 유기농 배추

안녕하세요. 이번에는 유기농 배추 문제를 풀어보았습니다. 1012번: 유기농 배추 문제 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 효과적인 배추흰지렁이를 구입하기로 결심한다. 이 지렁이는 배추근처에 서식하며 해충을 잡아 먹음으로써 배추를 보호한다. 특히, 어떤 배추에 배추흰지렁이가 한 마리라도 살고 있으면 이 지렁이는 인접한 다른 배추로 이동할 수 있어, 그 배추들 역시 해충으로부터 보호받을 수 있다. 한 배추의 상하좌우 네 방향에 다른 배추가 위치한 경우에 서로 인접해있는 것... www.acmicpc.net 문제 풀이 이 문제는 저번에 풀었던 단지번호붙이기 문제와 매우 유사합니다. 위의 사진처럼 대각선을 포함하지 않은 묶음의 개수를 출력하면 되는 문제입니다. 그렇게 되면 총 5개의 묶음이 나오게 됩니다. 첫 번째 입력으로는 테스트 케이스의 개수

Naver Blog

백준 11656 - 접미사 배열

안녕하세요. 이번에는 접미사 배열 문제를 풀어보았습니다. 11656번: 접미사 배열 11656번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 접미사 배열 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 15110 10383 8511 69.992% 문제 접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다. baekjoon의 접미사는 baekjoon, aekjoon, ekjoon, kjoon, joon, oon, on, n 으로 총 8가지가 있고, 이를 사전순으로 정렬하면, aekjoon, baekjoon, ekjoon, joon, kjoon, n, on, oon... www.acmicpc.net 문제 풀이 오늘은 시간이 없어서 쉬운 문제를 풀어보았습니다 ㅜㅜ.. 문자열을 입력받고 나서 하나씩 자른 다음 사전 순으로 정렬을 하면 되는 문제입니다. s = input() arr = [] for i in range(len(s)): arr

Naver Blog

백준 1912 - 연속합

안녕하세요. 이번에는 연속합 문제를 풀어보았습니다. 1912번: 연속합 1912번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 연속합 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 (추가 시간 없음) 128 MB 98214 33654 23365 32.993% 문제 n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 ... www.acmicpc.net 문제 유형 : DP 문제 풀이 연속합 문제는 연속된 수열 중 가장 큰 숫자를 찾으면 되는 문제입니다. 아래와 같이 예시로 되어 있다면, 10 -4 3 1 5 6 -35 12 21 -1 12 + 21 = 33 즉, 33이 가장 큰 숫자가 됩니다. 다른

Naver Blog

백준 1715 - 카드 정렬하기

안녕하세요. 이번에는 카드 정렬하기 문제를 풀어보았습니다. 1715번: 카드 정렬하기 1715번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 카드 정렬하기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 25885 8678 6833 34.007% 문제 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 ... www.acmicpc.net 문제 유형 : 그리디, 우선순위 큐 문제 풀이 이 문제를 푸는데 2~3시간 동안 계속 이리저리 방법을 바꿔봤네요.. 그러다가 감을 못 잡겠기에 문제 해설을 봤더니 엄청난 깨달음을 얻고 다시 풀어보니 맞았네요 제가 계속 틀렸던 원인 중 하

Naver Blog

백준 2193 - 이친수

안녕하세요. 이번에는 이친수 문제를 풀어보았습니다. 2193번: 이친수 2193번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 이친수 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 70188 28968 21623 39.468% 문제 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않는다. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 예를 들면 1, 10, 100, ... www.acmicpc.net 문제 유형 : DP 문제 풀이 이친수 문제는 조건들만 본다면 점화식을 쉽게 세울 수 있습니다. 조건은 다음과 같습니다. 1. 이친수는 0으로 시작하지 않는다. 2. 이친수에서는 1이 두 번 연속으로 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않

Naver Blog

백준 1026 - 보물

안녕하세요. 이번에는 보물 문제를 풀어보았습니다. 1026번: 보물 문제 옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다. 길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자. S = A[0] × B[0] + ... + A[N-1] × B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다. S의 최솟값을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 ... www.acmicpc.net 문제 풀이 보물 문제는 쉽게 접근하여 풀 수 있습니다. A 배열은 내림차순으로 B 배열은 오름차순으로 정렬한 뒤 서로 곱하여 합을 구하면 되는 문제입니다. n = int(input()) A = list(map(int, input().split())) B

Naver Blog

시스템 프로그래밍 - 우분투 명령어 정리 (1)

기타 리눅스/유닉스 내용 프로그램 - 사용자 입력에 따라 입력값을 일정한 처리 방법과 순서에 따라 처리하여 결과를 산출하는 명령문의 집합 POSIX - 유닉스에 기반을 두고 있는 표준 운영체제 인터페이스 시스템 V 인터페이스 정의 (SVID) - AT&T 유닉스 시스템 V의 인터페이스를 정의 X/Open 가이드 개방 시스템에 관한 표준 정의와 보급을 목적 단일 유닉스 명세 (SUS) - 운영체제가 유닉스라는 이름을 사용하기 위해 지켜야 하는 표준의 총칭 시스템 호출과 라이브러리 함수의 차이점 라이브러리 : 미리 컴파일된 함수를 묶어서 제공하는 특수한 형태의 파일이다. 라이브러리 함수 : 라이브러리에 포함된 함수를 의미이다. 시스템 호출 : 리눅스 시스템 서비스를 이용해 프로그램을 구현할 수 있도록 제공되는 프로그래밍 인터페이스이다. C 언어의 함수 형태는 다음과 같다. 리턴값 = 시스템 호출명(인자, ...); 이 둘의 차이점을 생각해 보았는데 - 시스템 호출은 프로그래밍 인터페이스

Naver Blog

백준 11720 - 숫자의 합

안녕하세요. 이번에는 쉬운 문제로 풀어봤습니다. 11720번: 숫자의 합 11720번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 숫자의 합 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 139616 74463 63155 54.368% 문제 N개의 숫자가 공백 없이 쓰여있다. 이 숫자를 모두 합해서 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. 출력 입력으로 주어진 숫자 N개의 합을 출력한다. 예제 입력 1 복사 1 1 예제 출력 1 복사 1 예제 입력 2 복사 5 543... www.acmicpc.net 문제 풀이 문자로 입력받은 뒤, 숫자로 변경 후 합을 구했습니다. n = int(input()) m = input() res = 0 for i in m: res += int(i) print(res) 감사합니다 :)

Naver Blog

백준 1157 - 단어 공부

안녕하세요. 이번에는 단어 공부 문제를 풀어보았습니다. 1157번: 단어 공부 1157번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 단어 공부 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 128 MB 153719 60852 48462 39.148% 문제 알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오. 단, 대문자와 소문자를 구분하지 않는다. 입력 첫째 줄에 알파벳 대소문자로 이루어진 단어가 주어진다. 주어지는 단어의 길이는 1,000,000을 넘지 않는다. 출력 첫째 줄에 이 단어에서 가장 많이 사용된 알파벳을 ... www.acmicpc.net 문제 풀이 이번 문제는 아스키코드를 사용하면 쉽게 해결할 수 있습니다. 아스키코드를 사용해서 배열 인덱스에 접근 후, 최댓값의 인덱스로 출력하면 되는 문제입니다. n = input().upper() arr = [0 for i in range(2

Naver Blog

백준 16953 - A → B

안녕하세요. 이번에는 A → B 문제를 풀어보았습니다. 16953번: A → B 16953번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 A → B 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 2 초 512 MB 17975 7548 6028 40.650% 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 입력 첫째 줄에 A, B (1 ≤ A < B ≤ 10 9 )가 주어진다. 출력 A를 B로 바꾸는데 필요한 연산의 최솟값에 1을 더한 값을 출력한다. 만들 수 없... www.acmicpc.net 문제 유형 : 그리디 / 그래프 탐색 문제 풀이 이 문제는 정수 A를 B로 바꾸면 되는 문제입니다. 연산 가능한 경우를 보고 처리하면 금방 해결할 수 있습니다. 연산 가능한 경우 1. 2를 곱한다. 2. 1을 수의 가장 오른쪽에 추가한다. a

Naver Blog

백준 10809 - 알파벳 찾기

안녕하세요. 이번에는 알파벳 찾기를 풀어보았습니다. 10809번: 알파벳 찾기 10809번 제출 맞힌 사람 숏코딩 재채점 결과 채점 현황 강의 알파벳 찾기 시간 제한 메모리 제한 제출 정답 맞힌 사람 정답 비율 1 초 256 MB 121420 64368 53548 53.134% 문제 알파벳 소문자로만 이루어진 단어 S가 주어진다. 각각의 알파벳에 대해서, 단어에 포함되어 있는 경우에는 처음 등장하는 위치를, 포함되어 있지 않은 경우에는 -1을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 단어 S가 주어진다. 단어의 길이는 100을 넘지 않으며, 알파벳 소문자로만 이루어져 있다. 출력 각각의 알파벳에 대해서... www.acmicpc.net 문제 풀이 문자열이 주어지고, 각 알파벳들이 몇번째 인덱스에 있는지 확인하면 되는 문제 입니다. n = input() res = [] for i in range(ord('a'), ord('z') + 1): idx = -1 for j in ran

Naver Blog

백준 11279 - 최대 힙

안녕하세요. 이번에는 최대 힙 문제를 풀어보았습니다. 11279번: 최대 힙 문제 널리 잘 알려진 자료구조 중 최대 힙이 있다. 최대 힙을 이용하여 다음과 같은 연산을 지원하는 프로그램을 작성하시오. 배열에 자연수 x를 넣는다. 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 프로그램은 처음에 비어있는 배열에서 시작하게 된다. 입력 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0이라면 배열에서 가장 큰 값을 출력하고 그 값을 ... www.acmicpc.net 문제 풀이 우선순위 큐를 이용하여 문제를 해결할 수 있습니다. heapq.heappop을 하게 되면 작은 값 순서대로 나오게 되는데, 큰 값을 먼저 출력하기 위해서 음수로 변환 후 출력하면 됩니다. 처음에 heapq를 사용해서 계속해보았는데도 시간

Naver Blog

백준 2941 - 크로아티아 알파벳

안녕하세요. 이번에는 크로아티아 알파벳을 풀어보았습니다. 2941번: 크로아티아 알파벳 문제 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= 예를 들어, ljes=njak은 크로아티아 알파벳 6개(lj, e, š, nj, a, k)로 이루어져 있다. 단어가 주어졌을 때, 몇 개의 크로아티아 알파벳으로 이루어져 있는지 출력한다. dž는 무조건 하나의 알파벳으로 쓰이고, d와 ž가 분리된 것으로 보지 않는다. lj와 nj도 마찬가지이다. 위 목록에... www.acmicpc.net 문제 풀이 크로아티아 알파벳 문제는 생각보다 재미있었습니다. 입력받은 문자열에서 크로아티아 알파벳이 몇 개인지 알아내면 되는 문제입니다. 예제 입력 들을 예시로 들어보겠습니다. 입력 : ljes=njak [lj, e, s=, nj, a

Naver Blog

시스템 프로그래밍 - 우분투 명령어 정리 (2)

리눅스의 파일 구성 파일명 - 사용자가 파일에 접근할 때 사용한다. inode - 번호로 표시된다. - 파일의 소유자나 크기 등의 정보이다. - 실제 데이터를 저장하고 있는 데이터 블록의 위치 주소이다. 데이터 블록 - 실제로 데이터가 저장되는 하드디스크의 공간이다. 리눅스의 함수 디렉터리 생성과 삭제 함수 기능 함수 디렉터리 생성 int mkdir(const char *pathname, mode-t mode); 디렉터리 삭제 int rmdir(const char *pathname); 디렉터리 관리 함수 기능 함수 현재 위치 확인 char *getcwd(char *buf, size_t size); char *get_current_dir_name(void); 디렉터리 명 변경 int rmdir(const char *pathname, const char *newpath); 디렉터리 이동 int chdir(const char *path); int fchdir(int fd); 디렉터리 읽기

1 2 3 4 5 6