분류 전체보기
-
[Python] 백준 17837번 문제 풀이 - 새로운 게임 2코딩테스트 2025. 8. 15. 20:57
문제 링크https://www.acmicpc.net/problem/17837문제 이해이문제는 체스판 위에 말이 있는데 말 위에 다른 말을 쌓을 수 있고, 4개의 말이 쌓였을 때 게임이 종료되고 턴을 출력하는 문제입니다.체스판 위에서 말이 이동할 수 있는 방향은 상하좌우 입니다.1 : 오른쪽(→)2: 왼쪽(←)3: 위쪽(↑)4: 아래쪽(↓)턴이 진행되면 1번부터 k번째 말까지 순서대로 이동방향으로 이동합니다.이 때 체스판의 색깔에 따라 이동하는 방법이 다릅니다.1번말이 이동하는 것을 예시로 들겠습니다. 1번말의 상태는 1번위에 2번이 쌓여있는 상태입니다.1번말이 이동하려는 칸이흰칸이면 1번 위에 있는 말들이랑 다 같이 이동하는데, 원래 있던 말 위에 1,2번을 쌓습니다.빨간칸이면 다 이동하고 쌓여있는 순서..
-
[Python] 백준 14890번 문제 풀이 - 경사로코딩테스트 2025. 8. 14. 19:46
문제 링크https://www.acmicpc.net/problem/14890문제 이해N X N의 맵에서 다음과 같은 길을 만들수 있습니다. 맵의 행과 열이므로 총 2N 개의 길을 만들수 있는 것입니다.길을 지나갈 수 있으려면 길에 속한 모든 칸의 높이가 같아야 합니다. 하지만 높이가 같지 않더라도 지나갈 수 있는 방법이 있는데요, 이 문제의 이름인 경사로를 놓는 것입니다.경사로를 놓는 조건은 다음과 같은데요경사로는 바닥과 평행하게 붙어있어야 한다.낮은 칸과 높은 칸의 차이가 2이상이지 않아야 한다.경사로의 길이보다 바닥의 길이가 작지 않아야 한다.글자만 보고는 이해가 어려웠는데요 그림을 보며 이해할 수 있었습니다.경사로는 세로 길이가 1, 가로 길이는 L인 직각삼각형 모양이였고, 아래의 두번째 그림처럼 ..
-
[Python] 백준 2563번 문제 풀이 - 색종이코딩테스트 2025. 8. 14. 00:04
문제 링크https://www.acmicpc.net/problem/2563문제 이해가로와 세로가 100인 도화지에 가로와 세로가 10인 검정 색종이를 각 변에 평행하게 붙였을 때도화지에 검정부분의 넓이가 어느정도인지 구하는 문제입니다.아이디어처음에는 검정색종이의 너비가 100이니 N*100을 해주고 겹치는 부분의 너비를 빼면 되겠다고 생각했지만 색종이가 100개라 이걸 일일히 다 계산하는 방법이 떠오르지 않았습니다.어차피 도화지 가로세로가 100밖에 안되니 2차원 배열로 만들어서 검정색종이가 붙여지는 부분을 1로 바꾸고 도화지에서의 1의 합을 구하면 될 것이라 생각이 들었습니다.또한 문제에서 색종이가 도화지를 벗어나는 일은 없다고 했기 때문에 조건도 필요없었습니다.그래서 나온 아이디어는도화지를 100X1..
-
[Python] 백준 8979번 문제 풀이 - 올림픽코딩테스트 2025. 8. 14. 00:03
문제 링크https://www.acmicpc.net/problem/8979문제 이해이 문제는 각 국가의 등수를 정하는데, 금메달 순으로 순위를 정하고, 금메달 개수가 같으면 은메달 개수, 은메달 개수가 같으면 동메달 개수를 비교해서 순위를 정합니다.예를들어 메달 현황이 다음과 같이 완전 같은 경우가 나올 경우 🥇🥈🥉1번국가1112번국가1113번국가0001,2번국가가 공동 1등이 되고 3번국가가 3등이 되는 식으로 순위가 정해집니다.아이디어제가 생각한 아이디어는 다음과 같습니다.파이썬의 람다식을 사용하여 금, 은, 동 순으로 내림차순 정렬을 한다. → 금,은.동 순으로 정렬됨배열에 있는 것들을 하나씩 딕셔너리에 key(국가) : value(순위) 형식으로 저장한다.정렬했을 때 메달개수가 정확히 같은..
-
자바는 어떻게 운영체제에 상관없이 동작될 수 있을까?면접스터디 2025. 8. 12. 22:42
자바가 운영체제에 상관없이 동작할 수 있는 이유는 JVM(Java Virtual Machine) 덕분입니다.자바는 코드(.java)가 바로 운영체제에서 실행되는 것이 아니라, 한 단계의 추상화(.class) 과정을 거치게 됩니다. 자바 소스코드는 컴파일러(javac)에 의해 바이트코드(.class 파일)로 변환됩니다.이 바이트코드는 특정 운영체제를 위한 코드가 아니라 가상의 컴퓨터인 JVM이 이해할 수 있는 중간 언어입니다.이후 JVM이 각 운영체제에 맞게 이 바이트코드를 읽어 해당 운영체제가 이해할 수있는 기계어로 번역하여 실행합니다.간단하게 다음과 같은 2단계를 거칩니다.1단계: 컴파일javac [소스파일].java 명령어를 통해 바이트코드를 생성합니다.Java 소스코드(.java) → Java Co..
-
실습으로 알아보는 Git 아키텍처면접스터디 2025. 8. 12. 19:35
Git의 아키텍처는 어떻게 되어 있을까요? 저는 우선 다음 블로그에 정리가 잘 되있어서 참고하여 작성하였습니다.https://inpa.tistory.com/entry/GIT-⚡️-개념-원리-쉽게이해 [GIT] ⚡️ git 개념 & 원리 (그림으로 알기쉽게 비유 😃)Git 이란 무엇인가? Git이란 분산형 버전 관리 시스템(Version Control System) 의 한 종류이며, 빠른 수행 속도에 중점을 둔다. 우리가 레포트를 제출한다고 가정했을때, 처음에 저장했을때 'report.txt'라inpa.tistory.com 위의 블로그에 첨부된 깃의 아키텍처입니다.사진에 나와있는 화살표 및 추가로 실습을 해보며 학습해보도록 하겠습니다.원격 저장소에서 Repository 만들기원격 저장소에 있는 코드를 로..
-
[Python] 백준 1063번 문제 풀이 - 킹코딩테스트 2025. 8. 12. 19:11
문제 링크https://www.acmicpc.net/problem/1063문제 이해이 문제는 체스판에서 킹을 이리저리 움직이다가 마지막에 킹의 위치와 돌의 위치를 구하는 문제입니다.킹은 상하좌우, 대각선으로 전부 이동할 수 있습니다.그리고 킹이 움직이는 자리에 돌이 있다면 돌도 킹이 움직였던 방향으로 움직입니다.킹이 오른쪽으로 한칸 움직였다면 돌도 오른쪽으로 한칸 움직입니다.한번 움직였을 때, 킹이나 돌 중 하나가 체스판을 벗어날 경우 해당 움직임을 건너뜁니다.아이디어그래서 떠올린 아이디어는 다음과 같습니다.킹의 좌표와 돌의 좌표를 숫자로 저장한다.킹이 먼저 이동할 위치를 확인하고, 그 자리에 돌이 있으면 돌까지 이동할 위치를 확인한다.위치 확인 시 둘중 하나라도 체스판 밖이라면 건너뛴다.확인한 위치로 ..
-
[Python] 백준 2980번 문제 풀이 - 도로와 신호등코딩테스트 2025. 8. 12. 19:04
문제 링크https://www.acmicpc.net/problem/2980문제 이해이 문제는 상근이가 신호등을 거치며 도로의 끝까지 가는데 걸리는 시간을 구하는 문제입니다. 우선 첫번째 입력을 예시로 들었을 때거리 3에 있는 신호등은 1~5초는 빨간불 6~10초는 초록불거리 5에 있는 신호등은 1~2초는 빨간불 3~4초는 초록불 이렇게 반복이 됩니다. 그래서 신호등에 도착했을 때의 현재 시간을 보고 어떤 불인지 계산하여 이동하면 됩니다.빨간불이 처음 바뀔 때부터 다음 바뀔때까지의 걸리는 시간은 (초록불 시간 + 빨간불 시간)이 걸립니다.그래서 전체시간 % (초록불 시간 + 빨간불 시간) 연산을 해준다면 사이클 시작 기준(0초)으로 어떤 신호등이 켜져있는지 확인할 수 있습니다.저 결과가 1~5초라면 빨간불..