본문 바로가기

전체 글182

[백준 1343 폴리오미노][파이썬] https://www.acmicpc.net/problem/1343 -정답 코드 -잘못된 풀이 방식 복잡하게 생각할 것 없이 replace함수로 4개씩 나오는 것, 2개씩 나오는 것 바꿔주고, 다 치환하고 남았는데도 'X' 가 있다는 건, 홀수개라는 거니까 -1출력 2022. 3. 12.
[백준 1789 수들의 합][파이썬] https://www.acmicpc.net/problem/1789 -정답 코드 이 문제를 보고 여러가지 생각이 들었는데, 계차수열을 사용해야 하나했지만, 서로 다른 N개의 자연수의 '최대값'만 구하라 했기 때문에, 헛수고였다.. 알고리즘 자체는 1부터 하나씩 늘려가면서 input보다 커졌을 때, 하나의 수를 뺀(직전의 값) 으로 돌아가, 정답을 구하는 방식이다. ex) s=10 sum=1,3,6,10,15 n= 1,2,3,4,5 여기서 sum이 15일때 s 값을 넘게 되고, 정답은 5-1, 4가 된다. 2022. 3. 10.
[백준 1439 뒤집기][파이썬] https://www.acmicpc.net/problem/1439 -정답 코드 - 코드 설명 그리디 알고리즘에 기본적인 수학이 들어간 문제다. 처음에 아무생각 없이 중첩 for문을 통해 하나씩 비교해나가려고 했지만, 굳이 그럴 필요가 없었다. 최소 몇번 뒤집는 횟수만을 구하면 되기 때문에 S 뒤집기 횟수 S 길이 01 1번 2 010 1번 3 0101 2번 4 01010 2번 5 010101 3번 6 0101010 3번 7 0100 이나 0111110, 011110000 같이 연속되는 숫자는 무시해도 된다. 2022. 3. 3.
[백준 4796 캠핑][파이썬] https://www.acmicpc.net/problem/4796 -정답 코드 l,p,v가 0일때 input 문을 끊어줘야하기 때문에 break문 작성 v(휴가 총 일수)를 p(연속 일)로 나눈 값의 나머지와, l(최대로 사용가능한 일 수) 중 min 값을 사용한 이유가 이 문제의 포인트 였던 것 같다. 1. v%p 가 더 클 때: 최대로 이용할 수 있는 일 수(l) 을 문제에서 지정했기 때문에 l보다 큰 값이 올 수 없음 -> l 채택 2.v%p가 더 작을 때: 휴가 일 수(v)를 초과하지 못하기 때문에 ->v&p 채택 !! 문제에서 원하는 출력 값이 특이한데, case 와 숫자 사이의 띄어쓰기도 고려할 것!! 2022. 3. 2.
[함수에서의 self 여부][파이썬] 파이썬이라는 언어를 활용하다 보면 class 내부에서 def 함수를 생성하고 그 안에 객체들을 사용하게 된다. 그 때 우린 'self'를 이용하여 self.객체 ex)self.name 이런 식으로 나타내는데, ​ 공부하다보면 어느 코드에는 self가 붙고 다른 코드에는 안붙었다. ​ 클래스 내의 다른 method 에서 참조할 때, 변수 이름에 self를 붙이게 되고, ​ 다른 method에서 참조하지 않으면 붙이지 않는다. ​ ex) -pyqt를 사용하여 간단한 위젯을 만드는 상황- ​ 15~17줄의 self.label은 28줄의 함수 def btn1_clicked(self),31줄의 함수 def btn2_clicked() 에 사용되기 때문에 self를 붙여줌! ​ 11~12줄의 textlabel에서는 .. 2022. 3. 2.
[input 오류 해결하기][파이썬] 잔오류지만, 멘탈이 나간 상태에서 자꾸 눈에 잡히지 않는 오류들. 문제 풀때 input을 확실히 받아 실수를 줄이자! 3 3 ​ 1 2 3 2 3 4 1 5 7 ​ 이런식으로 주어지는 input에서 1,2,3을 data에 append 하는 방법 ​ -> map으로 라는 오류가 계속 떠서 해결하는 방법 2022. 3. 2.
[금융데이터 분석을 위한 판다스 활용법][파이썬] 인프런 강좌에서 '금융데이터 분석을 위한 판다스 활용법' 이라는 강의를 수강했다. ​ 시리즈부터 데이터프레임 구조, 간단한 프로젝트까지 구현하여 시각화까지 해 볼 수 잇었다. ​ 강의를 들으면서 가장 기억하고 싶은 3가지 ​ 1. 실전에서 내가 사용할 정보들은 인덱스값도 많고 정제되지 않은 데이터일 확률이 높기에(nan값도 많고..), concat 함수 df1=pd.concat([df_10y_rate_close_sample,kodex_sector_df_sample],keys=['10Y','ETF'],axis=1,join='inner') 에서 join='inner'를 활용하여 공통적 인덱스값을 가지고 올 수 있다. ​ 2. nan값을 다룰 때, dropna(),fillna(),isna()와 같은 metho.. 2022. 3. 2.
[이코테-상하좌우][파이썬] 나동빈님 이것이 취업을 위한 코딩 테스트다 p110 -정답 코드 -> 차근차근 조건 하나씩을 정리해나가면서 푸는 것이 중요 !! 전체적으로 그림을 그리고 한 조건씩을 먼저 짜면서 코딩해보자 !! ​ 구현 문제는 문제가 길지만 엄청 어려운 문제 혹은 많은 사고력을 요하는 문제가 나오지 않는 편! ​ 문법과 라이브러리들, 기초를 잘 다져놓자 2022. 3. 2.
[백준 9237 이장님 초대][파이썬] https://www.acmicpc.net/problem/9237 -정답 코드 가장 빠른 시간 내에 주어진 나무들을 모두 심고 완전히 자라게 해야 하는 문제 -> 가장 오래 걸리는 나무들부터 심자(data.sort(reverse=True) 이유) ​ range 반복문을 통해서 각각의 나무별로 심는시간(1)과 인덱스 값을 더해준다 -> 인덱스 값을 더하는 이유: 각 인덱스번호가 심는 날짜를 나타내기 떄문 ex) 인덱스가 1이면, 0번 인덱스의 나무가 심어지고 있을 때는 아무 변화도 일어나지 않기 때문에 하루가 소요된 것으로 간주함 ​ 다 심고 난 다음날 이장님을 초대하기로 했기 떄문에 +1 ​ !그리디 알고리즘을 해결해 나갈 때 인덱스 번호와 순서가 큰 힌트가 될 수 있다! 2022. 3. 2.
[백준 3135 라디오][파이썬] https://www.acmicpc.net/problem/3135 -정답 코드 생각한 것들을 최대한 직관적이고 간단하게 생각하자 for i in range(n): data.append(int(sys.stdin.readline())) -> 백준 알고리즘에서 자주 쓰이는 문법이니까 헷갈리지 말기! 2022. 3. 2.
[이코테-숫자 카드 게임][파이썬] '나동빈님의 이것이 취업을 위한 코딩테스트다' 96쪽 - 정답코드 1. 그냥 쉽게 생각하면 금방 짤 수 있는 알고리즘이다 ​ -> 생각 한번 꼬였다가 산으로 다녀왔다... ​ 2. 각각의 리스트를 input 받고 그 중에 min값만 따로 빼 놓으면 해결 가능한 문제 2022. 3. 2.
[이코테- 큰 수의 법칙][파이썬] '나동빈님의 이것이 취업을 위한 코딩테스트다' 92쪽 -정답 코드 알고리즘 종류: 그리디 알고리즘 ​ 고려할 포인트! ​ - k+1번 연속해서 더해지는 것이 불가능하다는 조건 -> 가장 큰 수와 두번째로 큰 수만 가지고 풀기( first, second) ​ - 가장 큰수 k번 더하고 두번째 큰수 한번 더한다 ​ - m 값을 하나씩 빼주면서 m==0값이 되는 순간, for문을 break 하고 2번째 큰 수를 한번 더한 후 다시 for문으로 돌아온다 ​ ​ 구현은 어렵지 않다 느꼈으나 자잘한 조건과 가장 효율적인 코드접근에 집중해보자 2022. 3. 2.