본문 바로가기

전체 글86

[백준 알고리즘/python] 백준 10250번 ACM 호텔, 파이썬 백준 알고리즘 10250번 ACM 호텔, 파이썬 이번 문제는 백준 알고리즘의 10250번 ACM 호텔이다. 파이썬으로 풀어보았다. 그러니까 요약해보면, 손님들이 걷는게 귀찮으니까 많이 안걸어도 되는 방을 선호하기 때문에, 선착순으로 거리가 가까운 방을 배정하려고 하는 것이다. 엘리베이터와 제일 가까운쪽이 1호이고 먼쪽이 호텔의 길이 W호이다. 방의 호수는 호텔의 층 H와 W로 이루어진다. 그럼 문제를 파 보자. # 조건 1. 입력은 첫째줄에 테스트 케이스의 수, 두번째 줄에, 층의 높이, 한층에 있는 방의 수, 배정 할 손님의 수가 주어진다. # 조건 2. 출력은 몇 호에 마지막 손님이 배치되는지이다. 문제에 대한 내 생각이다. 그 전에, 나는 이거 문제 보자마자 생각한게, 대체 W는 왜 필요한거지? 라.. 2020. 4. 2.
[컴퓨터 구조] 10의 보수 2의 보수, 보수에 관해 1 컴퓨터 구조에서 다루는 보수라는 개념을 정리 해 보려고 한다. 먼저 알아야 할 것은, 컴퓨터는 더하기 밖에 할 줄 모르는 기계라고 한다. 그럼 뺄셈을 어떻게 이해하느냐. 바로 뺄샘을 덧셈으로 바꿔서 계산한다. 예를들어 13 - 7 같은 경우 13 + (-7) 로 계산한다고 한다. r진법에는 r의 보수와 (r-1)의 보수가 있다. 무슨 말이냐면, 10진법에는 10의 보수와 9의 보수가 있고, 2진법에는 2의 보수와 1의 보수가 있다는 말이다. 그렇다면 이해하기 편하게, 우리가 사용하는 10진법으로 보수를 알아보자. 위에서 말했듯이 10진법에는 10의 보수와 9의 보수가 있다. 9의 보수 먼저 알아보도록 하자. 9의 보수는 어떤 숫자가 N이 주어지면 숫자 N의 각 자리숫자를 9에서 뺸 것과 동일하다. 역시 .. 2020. 4. 1.
[백준 알고리즘/python] 백준 2869번 달팽이는 올라가고 싶다, 파이썬 백준 알고리즘 2869번 달팽이는 올라가고 싶다, 파이썬 이번 문제는 백준 알고리즘의 2869번 달팽이는 올라가고 싶다. 문제이다. 파이썬으로 풀어보았다. 문제는 간단하다. V높이의 막대에 낮에는 A만큼 올라가고 밤에는 B만큼 올라간다. 그냥 간단한 산술 문제이다. 나는 처음에 while문을 돌렸다가 시간초과로 실패를 했다. 그 코드와 생각을 먼저 올려보려 한다. 문제에 대한 처음 생각 #생각 1. 반대로 위에서부터 내려가는 걸로 생각 #생각 2. V에서 A만큼 빼주고 B만큼 올려주고, count를 1올리는것 반복. #생각 3. 하지만 A만큼 빼 줬을때 V가 이미 0보다 작거나 같다면 그냥 카운트를 출력 실패한 코드(이유: 시간초과) A, B, V = map(int, input().split()) cou.. 2020. 3. 27.
[백준 알고리즘/python] 백준 1193번 분수찾기, 파이썬 백준 알고리즘 1193번 분수찾기, 파이썬 이번에 풀어 볼 문제는 백준 알고리즘의 1193번 분수찾기 문제이다. 파이썬으로 풀어보았다. 나는 머리가 딸려서 그런가 문제 이해하는데 한참 걸린거 같은데, 한번 표에 화살표를 그려봤다. 수열이 저런식으로 진행이 되는데 저기서 X가 주어지면 X번째에 있는 분수를 구하는 프로그램이다 일단 문제에 대한 생각이다. #생각 1. 지그재그가 시작되는 첫 원소?를 잘 살펴보면 첫째줄 (1/1) 둘째줄 (1/2) 셋째줄(3/1) 분자나 분모가 그 줄이 몇번째인지를 알려주고 있다. #생각 2. 그 줄이 몇번째인지 알면 당연히 그 줄에 있는 원소의 개수도 알 수 있다. 1>1 2>2 3>3 #생각 3. 1과 2를 가지고, X를 입력받았을때, X보다 처음으로 크게 나오는 1 + .. 2020. 3. 25.
[파이썬/python] 파이썬 영상처리, OpenCV로 흑백사진 만들기 파이썬 OpneCv를 활용해서 컬러사진을 흑백사진으로 만들고 저장하기. 첫 수업이 시작되고 첫 과제가 나왔다. 물론 코로나로 인해서, 싸강으로 진행되었다. 설레는 마음으로 등교하고 싶었는데 아쉽게 되었다. 첫 과제의 메인 문제는, 간단했는데, 거의 출석 확인용이었다. 그래도 복습할 겸 기록으로 남겨보려고 한다. 내용은 이제 컬러사진이 주어지는데 이 사진을 우리가 알고있는 흑백사진으로 바꾸고, 이걸 저장하는 문제였다. 코드는 간단하다. 먼저 openCv모듈을 설치 해 줘야 하는데, 이 과정은 따로 포스팅을 해야겠다. opencv를 설치 했으면 이제 불러오고 코드를 짜 주면 된다. 흑백으로 처리해야 할 사진은 이 사진이다. lena라는 사진인데 영상처리 쪽에서는 매우 유명한 사진이라 한다. 이 사진을 이처럼.. 2020. 3. 23.
[백준 알고리즘/python] 백준 2292번 벌집, 파이썬 백준 알고리즘 2292번 벌집, 파이썬 이번 문제는 백준 알고리즘의 2292번 벌집 문제이다. 역시 파이썬으로 풀어보았다. 문제 이해를 잘 해보면 방 1을 1개로 치고 그 번호가 매겨져 있는 방까지 문을 몇번 열어야 갈 수 있냐는 문제이다. 잘 보면 중심에있는 1번방은 하나, 2번부터 7번까진 두개, 8번부터 19번까진 3개이다. 이걸 수열로 정리해보면 1 7 19 37 61.... 이런식이다. 고등학교때 배웠던 "계차수열"이 떠오른다. 무슨 수열 형탠지는 알겠는데, 계차수열의 일반항을 구하는 식이 생각나지 않아서 검색 해 봤다. 결론은 An = A1 + Bn(n = 1 부터 n = k-1)까지의 합이다. 나는 수학 설명을 하는 재능은 딱히 없으니, 더 궁금하면 찾아보도록 하자. 이 식을 통해 위 문제를.. 2020. 3. 23.
[백준 알고리즘/python] 백준 2839번 설탕 배달, 파이썬 백준 알고리즘 2839번 설탕 배달, 파이썬 이번 문제는 백준 알고리즘의 2839번 설탕 배달 문제이다. 역시 나는 파이썬으로 풀었다. 문제는 간단한 산수?문제이다. 나는 이거 문제를 보자마자 두 가지 방법이 떠올랐었는데, 하나가 뭐 때문인 지는 모르겠지만 잘 되지 않았다. 일단 문제에 대한 내 생각이다. 맞은 문제부터 생각 정리를 해 보았다. # 생각 1. 5로 나누어떨어지지 않는 경우에서 주어진 Nkg에 대해, 3을 빼고 count를 1 추가한다. # 생각 2. 만약 5로 나누어 떨어진다면 count에 5로 나눈 몫을 추가한다. # 생각 3. 3으로 계속 빼도 3이나 5로 나누어 떨어지지 않는다면, -1을 출력한다. 이게 내 첫번째 생각에 대한 코드이다. 맞은 코드 kg = int(input()) c.. 2020. 3. 21.
[백준 알고리즘/python] 백준 1712번 손익분기점, 파이썬 백준 알고리즘 1712번 손익분기점, 파이썬 이번 문제는 백준 알고리즘의 1712번 손익분기점 문제이다. 역시 파이썬으로 풀어 보았다. 정리하자면 노트북을 판매하는 회사에서, A만원의 고정비용과 노트북 한대당 B라는 가변비용이있고, 마지막으로, 노트북 가격이 C만큼 책정되었다고 했을 때, 손익 분기점이 최초 몇 대 부터 많아지는 지 구하라는 것이다. 문제 자체는 간단하다. 먼저 문제의 조건이다. # 조건 1. 고정비용이 A 가변비용이 B*판매대수N 그리고 판매가격이 C*판매대수N 이다. # 조건 2. 손익 분기점이 존재하지 않으면 -1을 출력한다. 이 문제에 대한 내 생각이다. # 생각 1. 판매가격 C 와 가변비용 B가 같거나, 판매가격 C가 더 클 경우 손익분기점이 존재하지 않는다. # 생각 2. 결.. 2020. 3. 21.
[백준 알고리즘/python] 백준 1316번 그룹 단어 체커, 파이썬 백준 알고리즘 1316번 그룹 단어 체커, 파이썬 이번 문제는 백준 알고리즘의 1316번 그룹 단어 체크이다. 역시 파이썬으로 풀어보았다. 자, 정리해보면 그룹 단어는 단어에 존재하는 모든 문자가 연속적으로 나타나는 경우이다. 단어 N개를 입력받아 그 중에 그룹 단어의 개수를 구하는 프로그램을 작성 하라는것이다. 문제의 조건 #조건 1. 첫째줄에 단어의 개수 N을 입력받는다. #조건 2. 알파벳 소문자로만 이루어진 단어들이 N개만큼 줄바꿈 기준으로 주어진다. 문제에 대한 내 생각이다. # 생각 1. 백준 알고리즘 1316번 그룹 단어 체커, 파이썬 이번 문제는 백준 알고리즘의 1316번 그룹 단어 체크이다. 역시 파이썬으로 풀어보았다.  자, 정리해보면 그룹 단어는 단어에 존재하는 모든 문자가 연속적으.. 2020. 3. 20.
[파이썬/python] 파이썬 문자열에서 특정 문자 제거, 변경 파이썬에서 문자열이 주어졌을 때, 문자열 안에 있는 특정 문자를 제거하거나 변경하는 방법이다. 유용할 것 같아서 기록으로 남겨둔다. 바로 코드를 보자 st = "google" st = st.replace("oo","uu") print(st) ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ guugle Process finished with exit code 0 대충 보면 알겠지만 .replace()를 사용하면 된다. 괄호 안의 첫번째는 문자열에서 찾을 문자 or 문자열이고, 두번째는 그 문자 or 문자열을 무엇으로 바꿀 지에 관한 내용이다. 아래와 같이 그냥 삭제를 시키고 싶으면 괄호 안에 아무것도 안 넣어주면 된다. 물론 공백으로 바꿀 수도 있다. st = "google" st = st.replace("oo","").. 2020. 3. 19.