본문 바로가기

분류 전체보기702

[백준 21736] 헌내기는 친구가 필요해 [Python] 풀이 단순한 graph 문제이다. 입력을 받으면서 탐색 위치를(I)를 찾아주자. BFS로 풀이했다. 벽(X)이 아닌 경우와, 이미 방문하지 않은 공간을 탐색해주어야 한다. 위의 조건이 성립하고, 도연이가 사람(P)을 만났다면 만난 사람 수를 업데이트 해주자. 만약 만난 사람이 0명이라면 "TT"를 출력해주어야 한다는 점도 유의하자. 소스코드 소스코드 보기 출처 21736번: 헌내기는 친구가 필요해 2020년에 입학한 헌내기 도연이가 있다. 도연이는 비대면 수업 때문에 학교에 가지 못해 학교에 아는 친구가 없었다. 드디어 대면 수업을 하게 된 도연이는 어서 캠퍼스 내의 사람들과 친해지고 www.acmicpc.net 2023. 6. 10.
[백준 17106] 빙고 [Text] 풀이 빙고를 풀면 된다. 뭔... 구분을 위해 아래와 같이 표를 만들었다. 우선 조건없이 색칠 가능한 칸을 찾아보자. 이제부턴 추리를 해야한다. C1이 참이라 가정을 해보자. A1, B2, C3, D4, E5가 참이여야 한다. B2에 의해 최소 한개의 세로 빙고줄이 있어야 하지만, B1에 의해 E1은 색칠될 수 없고, D3의 조건에 부합하지 못해 결국 아무런 세로 빙고줄이 만들어지지 않는다. C1이 아니므로 불가능 표시(검정색)를 해주었고, 다음으로 A1이 성립하지 않는경우로 추리해보겠다. E2는 진행에 따라 다르니 일단 C4가 참이라고 가정하고 계속 진행해보겠다. E2와 E3만 성립한다면, B2는 참이다. 일단은 아직까지는 전부 성립한다. 남은 칸들에 대해 진행을 해보자. D3이 성립하는지 살펴보자. .. 2023. 6. 10.
[백준 20529] 가장 가까운 세 사람의 심리적 거리 [Java] 풀이 N개의 중 3개의 MBTI에 대해서 가장 작은 심리적 거리를 구해야 한다. 모든 경우의 수를 전부 탐색하면 N^3 이기에 당연히 시간초과가 발생할 것이다. 때문에 구한 거리가 0인지 확인을 하고, 중간에 loop를 빠져나와야 한다. 비둘기집 원리를 통해 더 줄여보자. MBTI에 대한 심리적 거리의 최선의 경우는 뭘까? bruteforce이지만, 심리적 거리가 0인 경우 더 이상의 탐색이 무의미하기에 중단 해주어 시간초과가 발생하지 않는다. 심리적 거리가 0이라는 조건 이후의 탐색이 무의미하다면, 심리적 거리가 0이 되는 최악의 경우는 무엇일까? 바로 비둘기집 원리에 따른 33명이다. 서로 다른 MBTI를 가진 16명이 2명씩 총 32명 있을 경우 심리적 거리는 0이 될 수 없다. 33명부터 동일한 .. 2023. 6. 7.
[DB 김준기문화재단] 74회 대학생 온라인 기업경영 체험스쿨(2023년 4회차) DB 기업경영 체험스쿨 DB김준기문화재단에서 주최한 대학생 기업 경영 체험캠프로 경영 시뮬레이션을 통해 기업 현장 체험 및 이해를 높일 수 있습니다. Day 1DB그룹의 소개와 진행되는 교육과 대회의 진행 방식에 대한 설명, 경영 관련 학습 자료함께 경영개론을 학습하는 시간을 가졌습니다.Day 2, 3DVMP(Dynamic Virtual Management Program)라는 가상 경영 시뮬레이션 프로그램으로 가상의 회사를 운영하며 타사(다른 팀)와 경쟁을 하는 방식으로 진행되었습니다. 교육과정  Dynamic Virtual Management Program대회 진행 간 팀장 만 프로그램을 설치 후 Zoom을 통해 팀원에게 화면을 공유해주는 방식으로 진행됩니다.다른 조원 또한 DVMP 설치가 가능하나, .. 2023. 6. 7.
[백준 14940] 쉬운 최단거리 [Java] 풀이 각 지점에서 목표지점(2) 까지의 거리를 출력하는 문제로 반대로 생각해서 목표지점에서 출발해 갈 수 있는 모든 거리에 대한 거리를 계산하는 문제로 풀이할 수 있다. 입력을 받으면서 목표지점(=출발지점)을 찾으면 0으로 대신 넣어주고, 1이면 -1로 넣어주자. 그 외의 숫자는 그대로 넣어주면 된다. 1일 때 -1을 넣어주는 이유는 출발지점으로부터 출발했을 때 갈수없는 땅(0)으로 둘러싸인 영역은 도달할 수 없는 위치(-1)임을 미리 표시하기 위함이다. 출발지점에서 도달할 수 있는 영역의 1들이 전부 -1 로 바뀌면 문제가 없을까? 그렇다, 어차피 도달할 수 있는 영역의 거리들은 이전에 도달한 거리의 값(출발지점 = 0 이므로 0 이상의 수)에 1을 더한 값이기에 결국은 덮어쓰일 것이다. 그 이후로는 .. 2023. 6. 7.
[백준 18110] solved.ac [Python] 풀이 정렬된 점수들의 절사평균을 구하는 문제이다. 가장 작은 15%의 인원과, 가장 큰 15%의 인원을 제외한 후 나머지 인원에 대해 평균을 구한 후 반올림을 해서 출력해주면 된다. 문제는 단순하지만 Python을 사용하다보니 예상치 못한 복병들이 많았다. 우선 첫 번째로 주어지는 점수들의 개수가 최대 3 x 10^5 이다. 실버 난이도의 문제답지 않게 많은 입력이 주어진다. 빠른 입출력을 해주자. 그 다음으로는 전체 인원에 대한 절사평균이 성립하지 않는 경우다. 즉, 인원이 너무 적어 절사평균을 구하기 위해 제외해야할 인원이 적은 경우이다. 15%에 해당하는 인원의 반올림한 값이 0보다 큰 경우에만 인원을 제외시켜 주자. 다른 하나는 Python의 round()의 작동 방식에 대한 문제다. 일반적으로 .. 2023. 6. 6.