알고리즘/ps

https://www.acmicpc.net/problem/17547 17547번: Floor Plan You are an architect and you have just been appointed to build a new swimming hall. The organisation behind these plans has acquired funding for a swimming pool and surrounding building as large as they want, but unfortunately they could not find anyone wi www.acmicpc.net 영어로 된 문제지만 쫄지마세요. n이 주어졌을때 $$ n = m^2-k^2 $$ 위 수식을 만족하는 m과 k를 구하면 됩니..
www.acmicpc.net/problem/2357 2357번: 최솟값과 최댓값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수, 또는 제일 큰 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100 www.acmicpc.net 이번에는 이 문제를 풀어볼게요. 세그먼트 트리를 이용해서 최솟값과 최댓값을 구하는 문제입니다. 이론파트에서 너무 누적합 얘기만 해서 찔렸거든요 헣헣 저번에 작성해뒀던 틀에서 조금의 수정으로 풀어보겠습니다. + 연산 대신에 min 연산과 max 연산으로 고치면 되겠네요. 그러면 짜잔~ import math import sys def input(): return sys.stdi..
programmers.co.kr/learn/courses/30/lessons/77484 코딩테스트 연습 - 로또의 최고 순위와 최저 순위 로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호 programmers.co.kr 2021년 상반기 웹 백엔드 개발 데브 매칭에 출제된 문제입니다. 그때도 푼 기억이 있는 문제인데, 다시 풀려니까 코드를 더럽게 짰다만 기억나고 디테일한 부분은 기억이 안나서 다시 풀어봤습니다. 문제 요약 lottos는 내가 보유한 로또 번호 win_nums는 당첨 로또 번호입니다. lottos 배열의 0은 지워져서 알 수 없는 ..
programmers.co.kr/learn/courses/30/lessons/67257 코딩테스트 연습 - 수식 최대화 IT 벤처 회사를 운영하고 있는 라이언은 매년 사내 해커톤 대회를 개최하여 우승자에게 상금을 지급하고 있습니다. 이번 대회에서는 우승자에게 지급되는 상금을 이전 대회와는 다르게 다음과 programmers.co.kr 오늘의 문제입니다. 수식 문자열이 주어지면 (+,-,*)연산의 우선 순위를 능력껏 수정해서 최대값을 계산하라는 문제입니다. 문제 접근 저 같은 경우에는 일단 "100+200"이 있으면 100,+,200 씩 나누도록 분리했습니다. test = expression.replace('-',' - ').replace('+',' + ').replace('*',' * ').split()..
ps 거의 한 달만인가요 허허 토요일에 코딩테스트가 있어서 급하게 벼락치기로 준비해봅니다. 합격하면 좋고 합격을 못하더라도 예전보다만 제발 잘 봤으면 좋겠습니다. 어쨋든 오늘 풀 문제는 2021년 카카오 공채 코딩테스트 1번 문제였던 신규 아이디 추천 문제입니다. programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제 접근 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. 2단계 new_id에서 알파벳..
www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 구현 문제로 특별한 알고리즘 기법에 대한 사전 지식 없이 풀 수 있는 문제입니다. 문제 설명란 외의 입력란에 있는 조건들도 보면서 풀어주시면 됩니다. 소스 코드 import sys from collections import deque input = sys.stdin.readline n = int(input()) k = int(input()) dx = [0,1,0,-1] dy = [1,0,-1,0] board = [[0..
www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 그래프 이론을 방금 배운 사람들도 바로 적용해볼 수 있는 문제입니다. 굳이 따지자면 그래프를 인접 리스트 형태로 만든 다음에 DFS로 탐색했습니다. 인접 리스트를 구현한 방법만 설명드릴게요. graph[1-1]에는 2랑 5가 들어갑니다. 즉 graph[n-1]에는 n과 연결된 노드를 넣어줍니다. 이미 방문한 노드는 가지 않도록 visited 배열도 관리해줍니다. 최종적으로 방문한 노드들은 visited에 체크가 되어..
문제 링크 www.acmicpc.net/problem/20115 20115번: 에너지 드링크 페인은 에너지 드링크를 좋아하는 회사원이다. 에너지 드링크는 카페인, 아르기닌, 타우린, 나이아신 등의 성분이 들어있어 피로 회복에 도움을 주는 에너지 보충 음료수이다. 야근을 마치고 한 www.acmicpc.net 문제 요약 두 에너지 드링크 a, b가 있고, 양이 각각 Xa, Xb라 할 때, 다음 둘 중 하나의 선택을 할 수 있다. a의 양을 Xa + (Xb / 2)로 만들고, b를 버리기 b의 양을 Xb + (Xa / 2)로 만들고, a를 버리기 위의 방식으로 에너지 드링크를 합쳐서 그 양을 최대로 하자. 접근 그리디 문제이고 접근법도 굉장히 쉽습니다. 그냥 가장 양이 많은 드링크에 그다음 양이 많은 드링크..
문제 링크 www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 요약 '('와 ')'로 이루어진 문자열로 레이저와 쇠막대기의 배치 정보를 준다면 쇠막대기 조각의 총 개수를 구하라. 문제 풀이 문제 속의 그림에 다른 정보들을 추가해보겠습니다. 쇠막대기에 적혀진 숫자들은 잘려진 조각을 세기 위한 숫자입니다. 그 위쪽 괄호와 근접하게 적힌 숫자들은 무엇일까요?? 괄호가 열린 만큼 쇠막대기들이 겹쳐서 쌓여있게 됩니다. 즉 몇겹이 쌓아 올려져 있는지 적어놨습니다. 레이저를 만나..
*포스팅 스타일 변경 친구 : 문제 푼 사람들 다들 천재인가봐 어떻게 저런 접근법을 바로 생각하지?? 난 못하겠던데.. 너무 어려워ㅠㅠ 음.. 친구에게 도움이 될지는 모르겠지만 한 문제를 풀때도 여러 시행착오를 겪은 뒤에 푸는 사람이 있다는 것을 알려주고 싶었습니다. 따라서 문제를 풀때 했던 생각들을 모조리 적어볼까 합니다. 의식의 흐름을 적는거니까 난잡해질 가능성이 있습니다. 문제 링크 www.acmicpc.net/problem/1339 1339번: 단어 수학 첫째 줄에 단어의 개수 N(1 ≤ N ≤ 10)이 주어진다. 둘째 줄부터 N개의 줄에 단어가 한 줄에 하나씩 주어진다. 단어는 알파벳 대문자로만 이루어져있다. 모든 단어에 포함되어 있는 알파벳은 최대 www.acmicpc.net 문제 설명 'N개..
moongomi
'알고리즘/ps' 카테고리의 글 목록