
벌써 연말이네요. 이번 연도 4월 7일에 글을 썼으니 대략 8개월 됐나요? 날짜로 제 공백기를 정리해 볼게요과정날짜대학교 졸작 마감22년 11월 8일대학교 졸업23년 2월 17일국비 인프라 수강23년 11월 20일 ~ 24년 3월 18일취업24년 9월 2일 ~ 이렇게 보니.. 저는 프로 등골 브레이커였습니다.대략 19개월의 공백이군요.. 근 2년 동안 놀았다는 게 보이네요. 지금 생각해 보면 졸작 때가 가장 열심히 살았던 게 아닐까 싶습니다. 밤새서 작업하는 게 즐거웠었고 친구들과 협업을 해보는 것도 즐거웠었습니다. 그때 이력서 작성과 지원을 해봤어야 하지 않았나 싶네요... 모르더라도 말이죠 단지 부족하다고 생각해서 더 배우기 위해라는 핑계를 대며 그렇게 느슨해져 가는 일상이 되고 말았습니다.부족하더라..

22년 11월 8일 즈음, 졸업작품 전시회가 끝나고 실질적으로 졸업을 한 것과 마찬가지였다. 졸작 프로젝트도 문제가 많았지만, 밤새 가며 했던 그 나날들에 대해 나에게 보상을 좀 주자는 생각으로 일주일간 게임을 했다. 필자의 부모님은 게임에 민감하다. 집에서는 엄연히 게임을 못한다. 한다면 그것은 몰컴일 뿐... 허락을 구하고 게임을 일주일간 했었다. 그 이후에 부모님께 6개월의 시간을 달라고 했었다. 내가 취업하기에 앞서 부족한 역량이 많으니 그것들을 소화하고 23년 6월 말까지 취업을 하겠다고 약속을 했다. 그렇게 몇 주간은 책 스터디도 하고 팀프로젝트에도 관심을 보였고 또 내가 했었던 졸업작품의 리팩토링을 생각했었다. 그러다 용돈벌이 겸.. 23년 1월부터 4월까지 아버지 지인 회사에서 사무직 일을..
![[python] 백준 15651번 N과 M (3)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2a5Kx%2FbtrwrHn4SCd%2FHsrWVQFkRJX7L6MkKJDkX0%2Fimg.jpg)
문제 풀이 예제2 입/출력을 보게 되면 아래의 그림과 나타낼 수 있는데 이전에 풀었던 permutations 문제와 조금 다르다. [python] 백준 15649번 N과 M (1) 문제 풀이 N과 M의 입력이 주어지는데 N과 M의 조건은 아래와 같다. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 쉽게 말해 N에 4, M에 2가 들어왔을 경우 1, 2, 3, 4 중에 2개를 고르면 아래 begin-dev-awos.tistory.com permutations 문제에서는 자기 자신을 제외한 순서쌍이었는데 이번 문제는 자기 자신을 포함한 모든 수의 순서쌍이다. 파이썬에서 itertools 라이브러리의 product 함수가 있어 풀 수 있는 문제이다. 아래의 링크에 product 함수에 대한 설명이 ..
![[python] 백준 15650번 N과 M (2)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCiiaJ%2Fbtrwhc9Y1OT%2FhXawyVP5z065kWDWJ6ukEk%2Fimg.jpg)
문제 풀이 출력의 결과가 조합의 결과와 같은 것을 알 수 있다. 조합은 뽑는 순서 상관 없이 하나로 생각하는 경우로 순열과는 반대의 개념이다. 이런 문제들은 python에서 permutations(순열)와 combinations(조합) 함수를 사용하면 쉽게 구할 수 있다. 반대로 permutations에 대한 결과는 아래의 문제에서 확인해볼 수 있고 전반적인 코드의 내용이 같다. [python] 백준 15649번 N과 M (1) 문제 풀이 N과 M의 입력이 주어지는데 N과 M의 조건은 아래와 같다. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 쉽게 말해 N에 4, M에 2가 들어왔을 경우 1, 2, 3, 4 중에 2개를 고르면 아래 begin-dev-awos.tistory.com 완성된 코드..
![[python] 백준 15649번 N과 M (1)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbB5AYj%2FbtrwbqtDxo4%2FxFJKZb8E3oXoqvVckgJRs0%2Fimg.jpg)
문제 풀이 N과 M의 입력이 주어지는데 N과 M의 조건은 아래와 같다. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 쉽게 말해 N에 4, M에 2가 들어왔을 경우 1, 2, 3, 4 중에 2개를 고르면 아래의 그림과 같이 수열이 뽑힌다. 이와 같이 뽑아주는 permutations를 이용하면 된다. permutations에 대한 설명은 아래의 문제에서도 풀었기 때문에 생략 [python] 백준 8892번 팰린드롬 문제 풀이 내가 생각한 방법은 itertools라이브러리의 permutations(순열) 함수를 이용하는 것이었다. permutations에 대한 자세한 설명은 밑에 있다. 파이썬을 파이썬답게 - 순열과 조합 - combinations, permut. begin-dev-awos.tis..
![[python] 백준 20044번 Project Teams](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbDWcm4%2FbtrvJyGlwOv%2Ftr2KHB3ZeLqDCzM0Ukoatk%2Fimg.jpg)
문제 풀이 첫째 줄에 팀 수(한 팀당 학생 2명) 둘째 줄에 학생들의 코딩 역량 (한 팀당 학생 2명이기에 팀 수 X2 만큼의 역량 개수가 주어진다.) 예제 1에서 1 7 5 8 이 입력으로 들어왔을 때 팀 당 역량이 최대화되기 위해서는 (1, 8), (7,5)로 묶일 수 있다. 그리고 역량의 합이 최소가 되도록 하면 된다. 내가 생각한 방법은 해당 역량을 순서 없이 받아왔다고 가정하면 sorted()로 오름차순 정렬을 시켜준 후 투 포인터를 이용하여 범위를 좁혀 가며 구하는 방식이다. ex) 역량으로 1 7 3 5 9 2가 들어오면 오름차순 정렬 후 1 2 3 5 7 9 가 된다. 투 포인터를 이용하면 (1, 9), (2, 7), (3, 5) 이렇게 3팀으로 묶이게 된다. 팀들의 역량의 합을 구하면 1..
![[python] 백준 8892번 팰린드롬](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdVQeEj%2FbtrvCmTNJTn%2FWB3NIlnkADEenhoD3Ye9O0%2Fimg.jpg)
문제 풀이 내가 생각한 방법은 itertools라이브러리의 permutations(순열) 함수를 이용하는 것이었다. permutations에 대한 자세한 설명은 밑에 있다. 파이썬을 파이썬답게 - 순열과 조합 - combinations, permutations 본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코 programmers.co.kr 간단히 요약하자면 aaba, ba, ababa, bbaa, baaba 총 5개의 단어가 입력으로 들어왔을 때 1. 5개의 단어 중에서 2개 단어를 합친다. 2. 합친 단어들 중에 *팰린드롬 단어를 찾는다. *팰..
![[python] 백준 17219번 비밀번호 찾기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuO62t%2FbtrvAUavZvc%2FEv0sg49N5YESL0UsS7VAj0%2Fimg.jpg)
문제 풀이 간단하게 dictionary로 풀 수 있다. 첫째 줄에 사이트 주소의 수와 비밀번호를 찾으려는 사이트 주소의 수가 공백을 두고 주어진다. 두번째 줄부터 17번째 줄까지는 저장된 주소와 해당 주소에 저장된 비밀번호가 주어진다. 18번째 줄부터 마지막번째 줄까지는 비밀번호를 찾으려는 사이트의 주소가 주어진다. 내가 생각한 방법은 딕셔너리를 이용하는 것이다. key값으로 주소 value값으로 비밀번호를 넣어 dictionary를 만들어주고 키값에 비밀번호를 찾으려는 사이트의 주소가 들어오면 그에 맞는 value값을 반환해주면 된다. 완성된 코드!!👍😊 import sys N, M = map(int, input().split()) address_dict = dict() for _ in range(N)..
![[python] 백준 10867번 중복 빼고 정렬하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcD0pyA%2FbtrvtALf8SA%2FR7ffqLVgCrMKSZ4I12NhWK%2Fimg.jpg)
문제 풀이 문제 출력 조건에서 같은 수는 한 번만 출력한다고 되어있기 때문에 set()으로 중복된 수들을 걸러주면 되겠다 싶었다. 또한 오름차순으로 정렬한 결과를 출력해야 되기 때문에 sorted()로 오름차순 정렬을 해주었다. 값만 출력해야 되기 때문에 빈 문자열을 하나 만들고 정렬된 리스트의 값들을 하나씩 넣어주는데 마땅한 방법이 생각나지 않아 f-string방식으로 값뒤에 공백을 하나 만들어 빈 문자열에 이어 붙이도록 했다. 마지막으로 strip()으로 불필요한 공백이 있으면 지워주도록 했다. 완성된 코드!!👍😊 num_count = int(input()) rs = '' for val in sorted(set(map(int, input().split()))): rs += f'{str(val)} ' ..
![[python] 백준 1312번 소수](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvFoIo%2FbtrvngzqWve%2FjI13pxyiR7nkaNerq6dnAK%2Fimg.jpg)
문제 풀이 해당 문제를 수학으로 접근하지 않고 나눈 다음 문자열로 생각하여 풀다 보니 IndexError와 틀렸습니다만 주구장창 떴다. 반례를 고려했다. 아래는 처음 짰던 코드다. 25, 7, 5 가 입력되었을 때 25/7의 결과가 str() 함수에 의해 문자열로 바뀌고 해당 문자열을 ' . ' 으로 구분하면 몫과 소수 부분으로 나뉘게 된다. 25/7을 했을 때 3.5714285... 을 split(' . ')을 해주면 3과 5714285... 두 문자열로 나뉜다. 뒤에 인덱스를 붙여주면 list 형태가 되어 인덱싱을 했을 때 해당 5714285... 이 부분만 가져올 수 있다고 생각하여 풀었다. a, b, n = map(int, input().split()) # 25/7 = 3.5714285... ->..