본문 바로가기

알고리즘133

[이코테-곱하기 혹은 더하기][파이썬] 나동빈님 이것이 취업을 위한 코딩테스트다 p312 --해설 result는 input의 시작, 제일 첫 값으로 지정 data의 앞 2개씩 비교하면서, 0의 유무를 찾고, 둘 중에 하나에도 0이 없으면, 곱하고(즉 둘 다 0이 아니면) 그게 아니라면 값을 더하고 -> 그 값을 result에 할당, 이 result값을 반복문 내내 사용하여 누적 곱과 합을 print 2022. 3. 22.
[이코테- 모험가 길드][파이썬] 나동빈님 이것이 취업을 위한 코딩 테스트다 p311 - 정답 코드 2022. 3. 22.
[백준 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.
[이코테-상하좌우][파이썬] 나동빈님 이것이 취업을 위한 코딩 테스트다 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.
블로그 소개글 안녕하세요! 우당탕탕 새파란 코딩이야기의 저자 Jyujae 입니다. 네이버 블로그에서 운영하다 이런저런 이유로 티스토리로 이사를 오게 되었습니다. 미지의 세계와 넓은 바다를 탐험하던 모험가처럼, 코딩과 함께 항해하며 다양한 이야기들을 기록하고자 합니다. 시행착오와 어려움들, 해결함으로서 오는 즐거움들을 하나하나 기록하는 새파란 일지를 작성해보고자 합니다. 화이팅! 2022. 3. 2.