전체 글 562

[*1541*] 잃어버린 괄호 in Java

https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 괄호 관련 문제 https://eboong.tistory.com/600 [16637] 괄호 추가하기 in Java https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나. eboong.tistory...

카테고리 없음 2022.08.17

[*5644*] 무선 충전 in Java (Feat. SWEA)

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWXRDL1aeugDFAUo SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 문제 요약 정리 최적의 BC를 선택하기 행과 열이 바뀌어있는 문제 단, BC 1과 BC 3의 충전 범위에 모두 속하기 때문에, 이 위치에서는 두 BC 중 하나를 선택하여 접속할 수 있다. 1. 이동 가능 범위 구하기 -> bfs bfs 깊이1 == C가 1일때 bfs 깊이2 = C가 2일때 2. 배터리 충전 매초마다 특정 BC의 충전 범위에 안에 들어오면 해당 BC에 접속이 가능 접속한 BC의 성능..

[*1828*] 냉장고 in Java (feat. 정올, Comparator, Comparable 차이 및 설명)

http://www.jungol.co.kr/bbs/board.php?bo_table=pbank&code=1828&sca=99 JUNGOL www.jungol.co.kr https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=hwadla&logNo=220885232086 [Java][Jungol] 문제풀기 - 기초다지기 출력 자가진단 1 [Java][Jungol] 문제풀기 - 기초다지기 출력 자가진단 1 자바 언어로 정올문제 풀기 시작합니다. 재미있... blog.naver.com -> 정올 코드 제출시 지켜야하는 클래스명 (Main) 해당 문제와 비슷한 문제 https://www.acmicpc.net/problem/1931 1931번: 회..

[20207] 달력 in Java

https://www.acmicpc.net/problem/20207 20207번: 달력 수현이는 일년의 날짜가 1일부터 365일로 표시되어있는 달력을 가지고있다. 수현이는 너무나도 계획적인 사람이라 올 해 일정을 모두 계획해서 달력에 표시해놨다. 여름이 거의 끝나가자 장 www.acmicpc.net https://eboong.tistory.com/322 [n20207] 달력 https://www.acmicpc.net/problem/20207 20207번: 달력 수현이는 일년의 날짜가 1일부터 365일로 표시되어있는 달력을 가지고있다. 수현이는 너무나도 계획적인 사람이라 올 해 일정을 모두 계획해서 달력 eboong.tistory.com 로직은 위에 나와있는 링크와 똑같이 풀었다! 언어만 자바로 바뀌어있을..

[17471] 게리맨더링 in Java

https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 문제 요약 선거구 : 2개 (1개의 구역이라도 포함해야함, 한 선거구 내에 있는 구역은 모두 연결되어있어야함, 다른 선거구의 구역과는 연결될 수 없다.) 구역 : N개 (각 구역은 2개의 선거구 중 하나에 포함되어야한다.) 같은 선거구 내에서 A-C-B , A가 B랑 바로 연결되는 게 아니더라도, 또다른 인접한 구역을 통해 갈 수 있다면? 두 구역(A,B)는 연결되어있다고 할 수 있다. 두 선거구에 포함된 인구의 차이..

[Coding Test] 파이썬 문법, 속성 총 정리

(+ 클래스 이름은 Main) 1. 입력 ex) 한 줄에 있는 여러 개의 숫자 입력받기 n,m=map(int,input().split()) ex) 한 줄에 있는 여러 개의 문자 입력받기 n,m=input().split() ex) 숫자 배열 입력받기 array=[list(map(int,input().split())) for _ in range(행의개수)] ex) 문자 배열 입력받기 (띄어쓰기 o) array=[list(input().split()) for _ in range(2)] ex) 문자 배열 입력받기 (띄어쓰기 x) array=[list(input()) for _ in range(2)] 2. 출력 print() (1) 배열 생성 array=[[] for _ in ra..

[17281]⚾ in Java

https://www.acmicpc.net/problem/17281 17281번: ⚾ ⚾는 9명으로 이루어진 두 팀이 공격과 수비를 번갈아 하는 게임이다. 하나의 이닝은 공격과 수비로 이루어져 있고, 총 N이닝 동안 게임을 진행해야 한다. 한 이닝에 3아웃이 발생하면 이닝이 종 www.acmicpc.net 접근 방식 (1). 4번 타자는 무조건 1번 선수 타석 순서 정하는 순열 함수를 수행하기 전에 4번타자 자리는 1번 선수로 고정시켜놓는다. (2). 순열 함수로 타석 순서를 정한다. 이때 selected[i]=cnt가 들어가야한다. HTML 삽입 미리보기할 수 없는 소스 (3). 타순 정했으니 게임 시작 1. 한 이닝에 3아웃 -> 종료 (이닝 교체 == 공격과 수비 교체) 2. 경기 시작 전, 타순을..

[4012] 요리사 in Java

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWIeUtVakTMDFAVH SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 접근 방식 -> 조합을 써서 A팀의 재료를 뽑아준다. 이때 배열의 타입은 boolean, 크기는 N 그리고 해당 배열 중에 값이 false라면 A팀의 재료로 선택되지 않았기에 B팀의 재료에 해당한다. 그래서 각팀의 음식맛을 구할 때 이중 for문을 돌려서 check의 값이 true라면 A팀의 재료이므로 teamA라는 변수에 더해주고 반대로 check의 값이 false라면 B팀의 재료이므로 teamB..

[*11286*] 절댓값 힙 in Java

https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 접근 방식 - 절댓값을 기준으로 정렬을 해야하는 상황 - 우선순위 큐의 정렬 기준을 변경해줘서 진행해야 하는 문제 참고 자료 https://velog.io/@robolab1902/Java-Priority-Queue-%EB%A7%A4%EA%B0%9C%EB%B3%80%EC%88%98%EC%97%90-%EB%9E%8C%EB%8B%A4%EC%8B%9D-%EC%93%B0%EB%8A%9..

[15686] 치킨 배달 in Java

https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 접근 방식 1. 조합을 이용해서 최대 M개의 치킨집을 뽑는 경우의 수를 구함 2. 각 집에서의 치킨 거리를 구함 3. 2번 과정을 모든 집에 적용해준 후에 합한 값이 최솟값이 되도록 구현 시행착오 온갖 시간초과 & 런타임 에러의 연속.. 1시간가량 삽질을 한 뒤에 잘못된 부분을 찾아냈다 combi 함수 내에서 start 변수에 넣어줘야 하는 건 i 였는데, start+1을 해..

[3040] 백설 공주와 일곱 난쟁이 in Java

https://www.acmicpc.net/problem/3040 3040번: 백설 공주와 일곱 난쟁이 매일 매일 일곱 난쟁이는 광산으로 일을 하러 간다. 난쟁이가 일을 하는 동안 백설공주는 그들을 위해 저녁 식사를 준비한다. 백설공주는 의자 일곱개, 접시 일곱개, 나이프 일곱개를 준비한다. www.acmicpc.net 문제 요약 의자 , 접시, 나이프 : 7개 난쟁이 : 9명 (진짜 난쟁이는 7명) 모자 100보다 작은 양의 정수가 적혀있다. (진짜 난쟁이) 일곱 난쟁이의 모자에 쓰여있는 숫자의 합 == 100 접근 방식 - 순열을 이용해서 아홉 난쟁이 중에 일곱 난쟁이를 골라냈다. - 그리고 골라낸 난쟁이가 진짜인지 확인 - 진짜라면 answer 배열에 일곱 난쟁이 넣기 HTML 삽입 미리보기할 수 ..

[*16637*] 괄호 추가하기 in Java

https://www.acmicpc.net/problem/16637 16637번: 괄호 추가하기 첫째 줄에 수식의 길이 N(1 ≤ N ≤ 19)가 주어진다. 둘째 줄에는 수식이 주어진다. 수식에 포함된 정수는 모두 0보다 크거나 같고, 9보다 작거나 같다. 문자열은 정수로 시작하고, 연산자와 정수가 www.acmicpc.net 접근 방식 - 괄호가 아예 없는 경우부터 시작한다. - 그리고나서 맨끝에서부터 괄호를 채우면서 값을 구해나가는 방식 - 여기서 주의해야할 것은 현재 탐색중인 연산자 배열의 인덱스(opidx)가 맨 끝에 있는 연산자면 괄호를 추가할 수 없다. 아래 그림에서 보면 opidx < 연산자 배열.size()를 만족해야만 괄호를 넣어서 값을 계산할 수 있다. 하지만 위 방식을 떠올리지못해서 ..

[1074] Z in Java

https://www.acmicpc.net/problem/1074 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 문제 요약 배열 크기 : 2^N X 2^N 방문 순서 : → ↙ → (총 4칸, 출발지 포함, 행은 1행, 3행, 5행 ...) r행 c열을 몇번째로 방문하는지 출력하기! 접근 방식 및 시행 착오 - 처음에 주어진 r, c까지 for문으로 돌려볼 생각이었다. 문제에서 주어진대로 Z를 따라가는 방식을 구현하려고 했는데 그렇게 되면 시간초과가 난다. 이 문제에서 주어진 시간은 0.5초이기 때..

[2839] 설탕 배달 in Java

https://www.acmicpc.net/problem/2839 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 문제 요약 N킬로그램을 배달해야 한다. 봉지의 수는 최소개수여야함. 봉지 종류 : 3킬로그램, 5킬로그램 접근 방식 및 시행착오 - 처음에 생각했던 방식은 예외 상황이 있는 케이스였다. n을 5로 나눴을 때의 나머지가 3이라면 유효한 값이 나오고 그게 아니라면 -1을 나오게끔 처리했다. 그랬더니 예를 들어 19라는 숫자에서 오류가 발생했다. 19를 5로 나눈 나머지는 4이다. 위에 짠 코드대로라면 -1이 나..

[17070] 파이프 옮기기 1 in Java

https://www.acmicpc.net/problem/17070 17070번: 파이프 옮기기 1 유현이가 새 집으로 이사했다. 새 집의 크기는 N×N의 격자판으로 나타낼 수 있고, 1×1크기의 정사각형 칸으로 나누어져 있다. 각각의 칸은 (r, c)로 나타낼 수 있다. 여기서 r은 행의 번호, c는 열의 www.acmicpc.net 문제 요약 - 1 HTML 삽입 미리보기할 수 없는 소스

[1010] 다리 놓기 in Java

https://www.acmicpc.net/problem/1010 1010번: 다리 놓기 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트케이스에 대해 강의 서쪽과 동쪽에 있는 사이트의 개수 정수 N, M (0 < N ≤ M < 30)이 주어진다. www.acmicpc.net 접근 방식 nCr을 사용하여 계산을 바로 해주는 방법을 사용함 nCr은 조합 개수를 구하는 공식 (n! / (n-r)! ) / r! 시행 착오 - 처음엔 중복 없는 조합을 떠올렸음 그래서 조합을 구하는 재귀를 돌려서 했으나 시간초과 - findAnswer이라는 함수와 변수 answer의 타입을 모두 int로 설정해주었을 때 아래 예시를 돌리면 정답이 아닌 0이 나오는 오류가 발생함 예시) 1 / ..

[16935] 배열 돌리기 3 in Java

https://www.acmicpc.net/problem/16935 16935번: 배열 돌리기 3 크기가 N×M인 배열이 있을 때, 배열에 연산을 R번 적용하려고 한다. 연산은 총 6가지가 있다. 1번 연산은 배열을 상하 반전시키는 연산이다. 1 6 2 9 8 4 → 4 2 9 3 1 8 7 2 6 9 8 2 → 9 2 3 6 1 5 1 8 3 4 2 9 → www.acmicpc.net 접근 방식 시행 착오 - 3,4번 연산시 배열의 행과 열이 바뀔 수 있다는 걸 생각하지 못했음 행과 열이 바뀔 수 있으니 수시로 n,m을 갱신해줘야함 (refresh() 함수 이용) - 1,2번 연산시 새로운 newArray에 값을 담고, 깊은 복사를 통해 array에 다시 넣으려고 함. 그런데 temp 변수 하나만을 이..

[1233] 사칙연산 유효성 검사 in Java

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV141176AIwCFAYD SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 접근 방식 본인 위치, 연산자, 왼쪽 자식노드, 오른쪽 자식 노드 본인 위치, 숫자 위와 같이 입력이 되었을 때 1 출력 시행 착오 - hasMoreTokens() 사용법을 몰라서 헤맸던 문제 위 메소드는 StringTokenizer에 사용할 수 있는 토큰이 있는지 확인하는 메소드! 만약 존재한다면 true, 존재하지 않는다면 false를 반환한다. import java.io.BufferedRead..

카테고리 없음 2022.08.09

[2563] 색종이 in Java

https://www.acmicpc.net/problem/2563 2563번: 색종이 가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다. 이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 www.acmicpc.net 문제 요약 흰색 도화지 : 100 x 100 검은색 정사각형 크기 : 10 x 10 검은색 정사각형의 변과 흰색 도화지의 변이 평행하도록 붙인다. *** 색종이가 붙은 검은 영역의 넓이 구하기 *** 접근 방식 101 x 101 크기의 boolean 배열을 만들고 색종이의 위치를 기록하면서 색종이가 붙은 영역의 넓이를 구함 1234567891011121314151617181920212223242526..

[6808] 규영이와 인영이의 카드게임 in Java

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWgv9va6HnkDFAW0 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 접근 방식 1. - 처음에 규영이가 고른 카드를 제외한 9장의 카드를 inyeong이라는 배열에 보관 2. 인영이의 카드 배열 모든 순열 구하기 3. 인영이의 카드 배열 구한 다음, 규영이의 카드와 비교하여 이기는지 지는지 판단할 것 시행 착오 - permu함수 내에서 selectedInyeong의 인덱스를 cnt로 해야하는데 i로 해서 오류가 발생함.. cnt는 뽑은 수의 개수, 즉, permu함..

[9229] 한빈이와 Spot Mart in Java

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AW8Wj7cqbY0DFAXN SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 접근 방식 조합을 이용해서 2개의 과자를 선택했고 2개의 과자의 무게를 합한 값이 최대가 될때 answer에 계속 값을 넣어주는 방식으로 값을 갱신하여 원하는 값을 구함. 시행 착오 make 매개변수에 start라는 변수를 넣어줘야하는데 이 부분을 빼먹어서 270개의 테케중 203개만 맞았다... 그래서 다시 생각을 해보니 조합에서는 start 변수가 필요하다는 걸 기억해냈다. 맨날 순열, 조합 헷..

[1228] 암호문1 in Java

https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AV14w-rKAHACFAYD&categoryId=AV14w-rKAHACFAYD&categoryType=CODE&problemTitle=1228&orderBy=FIRST_REG_DATETIME&selectCodeLang=ALL&select-1=&pageSize=10&pageIndex=1 SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 접근 방식 해당 문제에서는 배열의 길이가 가변적으로 변해야하므로 일반 배열이 아닌 ArrayList를 사용해야한다. x의 위치 바로 다음 위치에..

[1158] 요세푸스 문제 in Java

https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 접근 방식 : 원형이라는 단어를 보고 큐를 떠올렸음. 그래서 k번째에 있는 사람이 나오기 전까지 앞에 있는 사람을 poll()해서 offer()로 뒤에 다시 넣어주는 작업을 진행하면 되었던 문제 시행 착오 : 나온 결과값을 따로 answer이라는 배열에 넣어주려고 했다. 그런데, 그냥 StringBuilder를 이용해서 sb에 append해주면 굳이 배열을 이용할 필요가 없다는 걸 깨닫게 된 문제! BufferWriter를 사용하려고 했는데 StringBuilder가 성능이 더 빠르다고 ..