<그림 1>과 같이 9×9 격자판에 쓰여진 81개의 자연수 또는 0이 주어질 때, 이들 중 최댓값을 찾고 그 최댓값이 몇 행 몇 열에 위치한 수인지 구하는 프로그램을 작성하시오.입력 받은 값을 하나씩 잘라서 배열에 넣는다.열과 행을 구분하기 위해 한 행을 먼저 저
가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다. 이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가
코니가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요.가능한 모든 조합을 생각하되, 같은 카테고리 안에 두개 이상 나오면 안된다.종류 별로 해시 저장을 하고, (Key-Va
오늘 날짜를 의미하는 문자열 today, 약관의 유효기간을 담은 1차원 문자열 배열 terms와 수집된 개인정보의 정보를 담은 1차원 문자열 배열 privacies가 매개변수로 주어집니다. 이때 파기해야 할 개인정보의 번호를 오름차순으로 1차원 정수 배열에 담아 ret
https://school.programmers.co.kr/learn/courses/30/lessons/118666 문제 질문마다 판단하는 지표를 담은 1차원 문자열 배열 survey와 검사자가 각 질문마다 선택한 선택지를 담은 1차원 정수 배열 choices가 매개
이석원은 조규현과 백승환에게 상대편 마린(류재명)의 위치를 계산하라는 명령을 내렸다. 조규현과 백승환은 각각 자신의 터렛 위치에서 현재 적까지의 거리를 계산했다.조규현의 좌표 $(x_1, y_1)$와 백승환의 좌표 $(x_2, y_2)$가 주어지고, 조규현이 계산한 류
그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨
지민이는 자신의 저택에서 MN개의 단위 정사각형으로 나누어져 있는 M×N 크기의 보드를 찾았다. 어떤 정사각형은 검은색으로 칠해져 있고, 나머지는 흰색으로 칠해져 있다. 지민이는 이 보드를 잘라서 8×8 크기의 체스판으로 만들려고 한다.체스판은 검은색과 흰색이 번갈아서
백준 18870실버 2를 풀다니.. 감격 !!수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다.Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표 Xj의 개수와 같아야 한다.X1, X2,
나는 왜 이렇게 어렵게 문제를 접근하는 걸까......... 🥹울고 싶다................처음엔 이게 뭔 소린가 했다.1\. 출발점에서부터 8방으로 이동하며, 경계가 가장 적은 점을 선택해 방문하는 방법 1\. 방문한 경로 기록할 테이블 필요 2\.
조합의 수를 세서 반환조합의 수를 계산하는 로직만 만들어야겠다고 생각했다.여기서 주목할 것은, 조합이 뭐가 만들어지는 것이 중요한게 아니라 갯수가 중요한 것이다. 그래서 조합의 수 구하기 공식을 통해 로직을 만들었다.고딩 수학을 다시 공부하는 것도 어쩌면 좋을지도..ㅋ
P0, P1, ...., PN-1은 0부터 N-1까지(포함)의 수를 한 번씩 포함하고 있는 수열이다. 수열 P를 길이가 N인 배열 A에 적용하면 길이가 N인 배열 B가 된다. 적용하는 방법은 B\[Pi] = Ai이다.배열 A가 주어졌을 때, 수열 P를 적용한 결과가 비
상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다.상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가
지민이는 N개의 원소를 포함하고 있는 양방향 순환 큐를 가지고 있다. 지민이는 이 큐에서 몇 개의 원소를 뽑아내려고 한다.지민이는 이 큐에서 다음과 같은 3가지 연산을 수행할 수 있다.첫 번째 원소를 뽑아낸다. 이 연산을 수행하면, 원래 큐의 원소가 a1, ..., a
옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다.길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자.S = A0 × B0 + ... + AN-1 × BN-1S의 값을 가장
N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 또는 열에 평행해야 한다.i, j 순차적으로 돌면서 거기서 k만큼 떨어진 것들
솔직히 문제가 뭐라고 하는지 정말 하나도 모르겠어서 그거 때매 헤맸다.아니 나는 상하좌우 배추가 있어야지 지렁이를 심을 수 있다고 생각했는데,, 그게 아니더라그냥 이어져있으면 배추를 심을 수 있다는 거였담.이 코드는 배추밭의 상태를 입력받고, 인접한 배추뭉치들을 찾아내
나는 원래 생각했던 알고리즘은 다음과 같다.N을 입력 받고 배열을 만들어서 2개씩 묶어서 더하고 새로 배열에 넣고 암튼 그렇게 하려고 했었는데, 아무리 생각해도 에바였다.그래서 어떤 규칙이 있을까 고민을 했다.1\. N, a, b를 입력 받는다.2\. 2로 나눈 몫을
솔직히.. 문제 이해하는데만 오백년 걸리는거 같다.나는 친구 따로따로 구해서 풀고 있었는데 아니었슴 ㅠㅠㅠ아니 친구 왤케 많냐ㅋ이 코드는 주어진 입력에 대해 친구 관계를 나타내는 테이블을 생성하고, 각 사용자별 최대 친구 수를 찾는 알고리즘을 구현합니다.사용자의 수를
문자열 S가 주어졌을 때, S의 서로 다른 부분 문자열의 개수를 구하는 프로그램을 작성하시오.부분 문자열은 S에서 연속된 일부분을 말하며, 길이가 1보다 크거나 같아야 한다.예를 들어, ababc의 부분 문자열은 a, b, a, b, c, ab, ba, ab, bc,
수 입력 받기분모, 분자 계산 후2부터 돌면서 나누어지면 나누기큰 수가 들어오면 오래 걸려서 그런거 같다.아마 소수찾기 해야할꺼 같다...ㅠㅠ주어진 코드에서 시간 초과가 발생하는 이유는 두 가지입니다.반복문 범위 설정: 주어진 반복문에서는 ( n )을 ( e )와 (
신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다.각 유저는 한 번에 한 명의 유저를 신고할 수 있습니다.신고 횟수에 제한은 없습니다. 서로 다른 유저를 계속해서 신고할 수
총 N개의 문자열로 이루어진 집합 S가 주어진다.입력으로 주어지는 M개의 문자열 중에서 집합 S에 포함되어 있는 것이 총 몇 개인지 구하는 프로그램을 작성하시오.사용자로부터 두 개의 정수를 입력받습니다. 이때 첫 번째 정수를 N에, 두 번째 정수를 M에 할당합니다.cn
sys.stdin.readline()은 표준 입력(stdin)에서 한 줄을 읽어오는 함수입니다. 이 함수를 사용하려면 sys 모듈을 먼저 임포트해야 합니다. 여기서 sys는 파이썬의 내장 모듈 중 하나로, 시스템과 관련된 파이썬 인터프리터의 기능에 접근할 수 있게 해줍
알고리즘 기초를 순차적으로 풉니다.정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오.명령은 총 다섯 가지이다.push X : 정수 X를 스택에 넣는 연산이다.pop : 스택에서 가장 위에 있는 정수를 빼고, 그 수를 출력한다.
문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.입력 받기한 단어를 거꾸로 해서 다른 리스트에 순차적으로 저장리스트를 join해서 출력하기말은 쉬웠는데,,, 생각보다
range()가 뭐야? 파이썬의 range() 함수는 일정한 범위의 정수 시퀀스를 생성하는 데 사용됩니다. range() 함수는 세 가지 다른 방법으로 사용할 수 있습니다. 아래에 설명드리겠습니다. 사용 방법 1. range(stop) 이렇게 사용하면 0부터 시작하
덱(deque)은 양쪽 끝에서의 빠른 삽입과 삭제를 지원하는 자료구조입니다. 파이썬의 collections 모듈에 포함되어 있으며, 리스트와 유사하지만 리스트보다 효율적인 메모리 사용과 좀 더 빠른 연산을 제공합니다.덱을 활용하는 방법은 간단합니다. 먼저 collect
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “(
https://www.acmicpc.net/problem/4779나는 파일로 인풋을 받아야 한다고 생각해서 파일로 인풋을 받고, 경로는 절대 경로를 설정했었다.그래서 이거를 파일로 인풋 받지 않는 걸로 수정하니 해결 되었다.리스트로 하는거 괜찮나? -> 난 리
코테를 준비하면서 시험기간과 겹쳤다.우선 시험이 중요하니, 중간고사에 집중했다.그러다 보니까 코테에 신경을 쓰지 못했다.나는 개발자 인스타그램을 하고 있는데, 거기서 도움을 주시는 우택님께서 코테 준비에 조언을 해주셨다.나는 전반적으로 코테를 어떻게 준비해야하는가?에
이 문제는 주어진 정수 N을 1로 만들기 위해 필요한 최소 연산 횟수를 구하는 것입니다. 사용할 수 있는 연산은 다음 세 가지입니다.1\. X가 3으로 나누어 떨어지면, 3으로 나눈다.2\. X가 2로 나누어 떨어지면, 2로 나눈다.3\. 1을 뺀다.이 문제는 각 단계
이 문제는 특정 개수 (N)의 PS(Problem Solving) 카드를 최소 비용으로 구매해야 하는 문제입니다. 카드는 여러 개의 카드가 포함된 카드팩 형태로만 구매할 수 있으며, 각 카드팩은 포함된 카드의 수와 가격이 다릅니다. 주어진 카드팩 가격을 이용해 정확히
주어진 수열 A에서 가장 긴 증가하는 부분 수열(LIS: Longest Increasing Subsequence)을 찾는 문제입니다. 예를 들어, 수열 A가 {10, 20, 10, 30, 20, 50}인 경우 가장 긴 증가하는 부분 수열은 {10, 20, 30, 50}
주어진 문제는 2\*N 크기의 우리에 사자들을 배치하는 경우의 수를 구하는 것입니다. 사자들은 가로로도, 세로로도 붙어 있을 수 없으며, 사자를 한 마리도 배치하지 않는 경우도 하나의 경우로 칩니다.이 문제는 동적 계획법(Dynamic Programming)을 사용하여
주어진 문제는 수의 자리가 오름차순을 이루는 경우의 수를 구하는 것입니다. 수는 0으로 시작할 수 있으며, 길이가 N인 오르막 수의 개수를 계산해야 합니다.이 문제는 동적 계획법(Dynamic Programming)을 활용하여 해결할 수 있습니다. 각 자리에서 가능한
백준 2156번 문제는 DP를 이용하여 해결하는 와인잔 문제입니다. 이 문제의 목표는 연속된 세 잔을 마실 수 없다는 조건 하에 최대한 많은 와인을 마시는 방법을 찾는 것입니다. 제 코드를 통해 이 문제를 해결하는 방법을 설명하겠습니다.우선 문제를 이해하기 위해서는 몇
백준 17404번 문제는 RGB 거리 2 문제로, 각 집을 RGB 색으로 칠하는데 인접한 집이 같은 색이 되지 않도록 하는 동시에 첫 번째 집과 마지막 집이 같은 색이 되지 않도록 하는 문제입니다. 목표는 모든 집을 칠하는 데 드는 최소 비용을 구하는 것입니다.이 문제
백준 11054번 문제는 주어진 수열에서 가장 긴 바이토닉 부분 수열을 찾는 문제입니다. 바이토닉 부분 수열은 증가하는 부분 수열이 하나 존재하고, 그 뒤에 감소하는 부분 수열이 이어지는 수열을 의미합니다. 따라서 이 문제는 두 개의 부분 수열을 합쳐서 가장 긴 길이를
이번 포스트에서는 백준 3085번 문제를 해결하는 방법에 대해 설명하겠습니다. 문제는 NxN 크기의 사탕판에서 인접한 두 사탕을 교환하여 같은 색의 사탕이 연속으로 가장 많이 이어지는 부분의 사탕 개수를 구하는 것입니다. 이를 위해 다음과 같은 방법으로 접근하였습니다.
이번 포스팅에서는 백준 2309번 문제인 "일곱 난쟁이"를 자바로 해결한 방법을 공유하고자 합니다. 문제 해결을 위해 사용된 알고리즘과 코드의 흐름을 차근차근 설명하겠습니다.이 문제는 총 9명의 난쟁이 중에서 7명의 키의 합이 100이 되도록 하는 난쟁이들을 찾아내는
이번 포스팅에서는 백준 1476번 문제인 "날짜 계산" 문제를 해결하는 과정을 정리하겠습니다. 이 문제는 주어진 세 가지 수 E, S, M에 대해 특정 규칙을 만족하는 연도를 찾는 문제입니다.문제는 아래와 같은 세 가지 수를 기준으로 특정한 연도를 찾아야 합니다:E는
이번 포스팅에서는 백준 1107번 문제인 "리모컨" 문제를 해결하는 과정을 정리하겠습니다. 이 문제는 고장난 버튼이 있는 리모컨을 사용해 특정 채널로 이동할 때 최소한의 버튼 클릭 횟수를 계산하는 문제입니다.문제는 고장난 버튼이 있을 때, 주어진 채널로 이동하기 위해
이번 포스팅에서는 백준 14500번 문제인 "테트로미노" 문제를 해결하는 과정을 정리하겠습니다. 이 문제는 4가지 종류의 테트로미노 모양을 2차원 배열에서 최적의 위치에 배치하여 얻을 수 있는 최대 합을 구하는 문제입니다.문제는 주어진 2차원 배열에 다양한 테트로미노
백준 15686번 문제 솔!문제가 치킨 내용이어서 풀면서 계속 치킨을 생각했더니 치킨 먹고 싶다. 후라이드 뼈치킨으로 튀김옷 엄청 얇은걸로.백트래킹은 정말 어렵다. 하지만 몇 문제 풀다보니 그 안에 패턴이 살짝 보이게 된다.우선 백트래킹은 깊이 탐색으로 볼 수 있다.조
아니 분명 맞게 풀었는데, 그리고 최적화된 문제풀이라고 자신했는데 계속해서 시간초과가 발생했다. 뭐가 문제일까?sout는 느리다는 것이다. 그러면 어떻게 대체를 할까?알고리즘 문제에서 출력 최적화를 위해 BufferedWriter와 StringBuilder를 사용하는