Programming/Algorithm
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/b2SCTE/btseoYus0WA/UQtADXmfqbVeHiWk2P2krK/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1535 1535번: 안녕 첫째 줄에 사람의 수 N(≤ 20)이 들어온다. 둘째 줄에는 각각의 사람에게 인사를 할 때, 잃는 체력이 1번 사람부터 순서대로 들어오고, 셋째 줄에는 각각의 사람에게 인사를 할 때, 얻는 기쁨이 1번 www.acmicpc.net 📕 설명 📕 Knapsack으로 풀이하였다. 방법론으로만 접근하여 잘 이해는 안 된다. 나중에 다시 풀어봐야지. 🧑🏻💻 나의 풀이 🧑🏻💻 from sys import stdin N = int(input()) people = [0] + list(map(int, stdin.readline().split())) happiness = [0] + list(map(int, stdin.readline()..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/qmg3z/btsdZM2Fwil/BjcYeKePZ7yrvQMd6NlLc0/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1138 1138번: 한 줄로 서기 첫째 줄에 사람의 수 N이 주어진다. N은 10보다 작거나 같은 자연수이다. 둘째 줄에는 키가 1인 사람부터 차례대로 자기보다 키가 큰 사람이 왼쪽에 몇 명이 있었는지 주어진다. i번째 수는 0보다 www.acmicpc.net 📕 설명 📕 python의 for loop에서 사용 가능한 enumerate를 사용하였고, 줄 세우기 위해, 중복을 제거하여 예외처리 하였다. 🧑🏻💻 나의 풀이 🧑🏻💻 N = int(input()) N_list = list(map(int, input().split())) src = [0] * N result_list = [] for i, val in enumerate(N_list): t..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/dmGbk3/btsdZOMh939/lf6r5yurgKd5Z5TAXINl21/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1455 1455번: 뒤집기 II 세준이는 동전 뒤집기를 하려고 한다. 세준이는 동전을 N×M개 가지고 있다. 동전은 세로로 N개, 가로로 M개 크기의 직사각형에 차곡차곡 놓여져 있다. 동전의 앞면을 0이라고 하고 뒷면을 1이라고 www.acmicpc.net 📕 설명 📕 python의 역 indexing을 이용해서 쉽게 풀이하였다. 입력을 받는 과정에서 값을 integer로 받아오기 위해 map을 사용했다. 🧑🏻💻 나의 풀이 🧑🏻💻 N, M = map(int, input().split()) src = [] for _ in range(N): tmp = [] for i in input(): tmp.append(i) tmp = list(map(int..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/blAYDE/btsdOzVR9KM/SylxalT0ftV8TkHKMXq4Mk/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1411 1411번: 비슷한 단어 첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 모든 단어의 길이는 같고, 중복 www.acmicpc.net 📕 설명 📕 python의 combinations를 이용하여 풀이하였다. 🧑🏻💻 나의 풀이 🧑🏻💻 from itertools import combinations def is_Similar(s1, s2): s = [] for i in [s1, s2]: alpha = [] a = "" for j in i: if j not in alpha: alpha.append(j) a += str(al..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/KJJev/btsdsSuz7Cz/jNHWkENZWK18NXtDuEweZ0/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1254 1254번: 팰린드롬 만들기 동호와 규완이는 212호에서 문자열에 대해 공부하고 있다. 규완이는 팰린드롬을 엄청나게 좋아한다. 팰린드롬이란 앞에서부터 읽으나 뒤에서부터 읽으나 같게 읽히는 문자열을 말한다. 동호는 www.acmicpc.net 📕 설명 📕 python의 indexing을 이용하여 풀이하였다. 🧑🏻💻 나의 풀이 🧑🏻💻 S=input() for i in range(len(S)): if S[i:]==S[i:][::-1]: print(len(S)+i) break
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bsXlcX/btr90VbNaPp/2tonRKEjcAw8KDdNbUKk40/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/2535 2535번: 아시아 정보올림피아드 첫 번째 줄에는 대회참가 학생 수를 나타내는 N이 주어진다. 단, 3 ≤ N ≤ 100이다. 두 번째 줄부터 N개의 줄에는 각 줄마다 한 학생의 소속 국가 번호, 학생 번호, 그리고 성적이 하나의 빈칸을 사 www.acmicpc.net 📕 설명 📕 각 대회에 대한 정보를 리스트에 넣고 정렬한 뒤 다시 역으로 score에 대해 정렬합니다. 그리고, dictionary를 생성하여 해당 값에 매칭되는 것이, 해당 팀이 2회 이하 나와야 하므로, 2회 이하로 맞춰주기 위해 2회 받으면 continue로 넘겨줍니다. 그리고, 그 조건에 위배되지 않는 값들은 결과 list에 넣습니다. 🧑🏻💻 나의 풀이 🧑🏻💻 N..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/K2Dzq/btr9Nmluhse/p1O9B1oSbbYY1bj7QePhI1/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/5426 5426번: 비밀 편지 선영이는 남자친구를 위해 연애 편지를 썼다. 선영이는 편지가 남들에게 읽히는 것을 막기 위해서 편지를 암호화하려고 한다. 먼저, 편지의 내용을 정사각형에 작성한다. 그 다음, 시계방향으로 www.acmicpc.net 📕 설명 📕 python의 특수한 indexing을 이용해서 풀이했다. 그리고, N x N 성질의 행렬에 대한 연산을 진행하였다. 🧑🏻💻 나의 풀이 🧑🏻💻 for _ in range(int(input())): S = input() len_S = len(S) li = [S[i:i+int(len_S**(1/2))] for i in range(0,len_S, int(len_S**(1/2)))] res = ..
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/bDEruv/btr9ki6VmjI/aZGAfx53lo3EN1FDMUWuzK/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1057 1057번: 토너먼트 김지민은 N명이 참가하는 스타 토너먼트에 진출했다. 토너먼트는 다음과 같이 진행된다. 일단 N명의 참가자는 번호가 1번부터 N번까지 배정받는다. 그러고 난 후에 서로 인접한 번호끼리 스타를 www.acmicpc.net 📕 설명 📕 토너먼트를 그림그려 보고, 아래와 같은 코드로 구현하였다. 토너먼트의 규칙을 잘 이해해보자. 🧑🏻💻 나의 풀이 🧑🏻💻 N, kjm, ihs = map(int ,input().split()) result = 0 while kjm != ihs: kjm -= kjm // 2 ihs -= ihs // 2 result += 1 print(result)
![](http://i1.daumcdn.net/thumb/C400x400/?fname=https://blog.kakaocdn.net/dn/caKV6C/btr9dXg2rve/su1POLLeXz1WvZYyehMSRK/img.png)
![](https://tistory1.daumcdn.net/tistory/5081514/skin/images/no-image.jpg)
https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 📕 설명 📕 python의 deque library를 사용하여 풀이하였다. popleft, rotate의 function을 사용했다. 🧑🏻💻 나의 풀이 🧑🏻💻 from collections import deque N, M = map(int,input().split()) data = deque([i for i in range(1,N+1)]) N_list = list(map(int,input(..