알고리즘

알고리즘/프로그래머스

[프로그래머스/python] Level 2 : 이모티콘 할인 행사

https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 독해 능력이 중요한 구현 문제이다 ㅋㅋ 읽어보면 알겠지만, 모든 가능한 할인율의 경우의 수를 전부 대입하여 풀어봐야한다. 즉 브루트 포스 + 백트래킹 구현 문제 정도로 생각할 수 있다. 문제 풀이는 다음과 같다. 1. 필요한 변수들을 선언해주고 dfs를 시작한다 2. 할인율의 경우의 수를 기록하는 배열을 sale_board라 할 때, 이 배열이 다 채워지면 cal() 함수를 호출해서 각 경..

알고리즘/백준(BOJ)

[백준/파이썬] 2877번 4와 7

https://www.acmicpc.net/problem/2877 2877번: 4와 7 창영이는 4와 7로 이루어진 수를 좋아한다. 창영이가 좋아하는 수 중에 K번째 작은 수를 구해 출력하는 프로그램을 작성하시오. www.acmicpc.net 기사 공부하랴, 텝스 하랴 소홀히 했던 알고리즘을 정말 오랜만에 다시 풀어보았다. 4와 7로 이루어진 수 중, n번째로 작은 수를 출력하는 문제다. 단번에 아이디어가 떠오르지 않는데, 분명 패턴이 있을 것 같아서 찾을 때 까지 수를 계속 적어보았다. 문제에서 알 수 있듯, 이 문제는 이진수(0과 1로 이루어진 수)를 활용해 푸는 문제이다! 패턴을 살펴보자. 정수 1 = 이진수 1 = 4 정수 2 = 이진수 10 = 7 정수 3 = 이진수 11 = 44 ... 이런 ..

알고리즘/백준(BOJ)

[백준/파이썬] 2108번 통계학

https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 합계, 중앙값, 최빈값, 범위 위 4가지만 구하면 되는 문제이다. 심지어 N도 홀수로 주어져서 중앙값 구하기가 더 수월하다 그럼에도 불구하고, 이렇게 글을 작성하는 이유는 바로 'Counter' 때문이다. Counter를 사용하게 되면 리스트에 해당 값이 몇번 등장했는지 알아서 count 해준다!! most_common이라는 함수를 호출하게 되면 (키 : 값) 쌍으로 이루어진 튜플들이 모인 객체를 반환하는데, ..

알고리즘/백준(BOJ)

[백준/파이썬] 2941번 크로아티아 알파벳

https://www.acmicpc.net/problem/2941 2941번: 크로아티아 알파벳 예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z= www.acmicpc.net replace함수를 이용해 치환해주는 문제이다. 변수.replace (old, new, count) 형식인데, 변수에 있는 old 문자를 new 문자로 바꾸는 함수이다. count는 몇번 바꿀지 지정해주는 것이다. 만약 s= 'oxox' 라는 문자열이 있을 때 s.replace('ox', '*', 1) 이라고 하면 '*ox' 라는 결과가 되고, count를 2..

알고리즘/백준(BOJ)

[백준/파이썬] 11758번 CCW

https://www.acmicpc.net/problem/11758 11758번: CCW 첫째 줄에 P1의 (x1, y1), 둘째 줄에 P2의 (x2, y2), 셋째 줄에 P3의 (x3, y3)가 주어진다. (-10,000 ≤ x1, y1, x2, y2, x3, y3 ≤ 10,000) 모든 좌표는 정수이다. P1, P2, P3의 좌표는 서로 다르다. www.acmicpc.net 문제 제목 그대로 CCW 알고리즘을 이용하여 푸는 문제이다. CCW 알고리즘은 벡터의 외적을 활용해 푸는 알고리즘으로, 학창시절에 배웠던 신발끈 공식을 적용하면 된다. 선분 AB를 u라 하고, AC를 v라 할 때, 위와 같은 외적 공식을 적용할 수 있다. θ 가 180 < θ < 360 이면 시계방향이고, sin θ 값이 음수이다..

알고리즘/백준(BOJ)

[백준/파이썬] 1963번 소수 경로

https://www.acmicpc.net/problem/1963 1963번: 소수 경로 소수를 유난히도 좋아하는 창영이는 게임 아이디 비밀번호를 4자리 ‘소수’로 정해놓았다. 어느 날 창영이는 친한 친구와 대화를 나누었는데: “이제 슬슬 비번 바꿀 때도 됐잖아” “응 지금 www.acmicpc.net 다른 사람들의 풀이보다 시간복잡도가 뒤쳐지지만, TLE도 아니고 스스로 풀었으니까 만족한다 ㅋㅎ 우선 입력범위에 해당 하는 소수들은 모조리 골라준다. 그리고 bfs를 시작하여, 현재 기준이 되는 소수와 단 한자리만 다르면서 아직 방문하지 않은 '소수'를 큐에 넣고 탐색을 이어간다. 한마디로 소수 판정 + bfs 이다. import sys from collections import deque #sys.set..

beomseok99
'알고리즘' 카테고리의 글 목록 (5 Page)