컴공댕이 공부일지
230327 EC.crew 4기 3주차 정모 (★2579 계단 오르기) 본문
#1. 2941 크로아티아 알파벳
실버 5
https://www.acmicpc.net/problem/2941
2941번: 크로아티아 알파벳
예전에는 운영체제에서 크로아티아 알파벳을 입력할 수가 없었다. 따라서, 다음과 같이 크로아티아 알파벳을 변경해서 입력했다. 크로아티아 알파벳 변경 č c= ć c- dž dz= đ d- lj lj nj nj š s= ž z=
www.acmicpc.net
풀이 설명 :
for반복문으로 문자열 쭉 훑다가, 조건문으로 해당 문자가 있는지 확인 들어오면 카운트 늘리고, 인덱스를 글자 길이에 맞게 적절하게 옮기고, continue 사용해서 아래는 무시하고, 다음 반복문으로 진행하도록!!
정답코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int count = 0;
String str = s.nextLine();
for(int i=0; i<str.length(); i++) {
if(i<str.length()-1) {
if(str.charAt(i)=='c') {
if(str.charAt(i+1)=='=') {
count++;
i++;
continue;
} else if(str.charAt(i+1)=='-') {
count++;
i++;
continue;
}
}
if(str.charAt(i)=='d') {
if(i<str.length()-2) {
if(str.charAt(i+1)=='z' && str.charAt(i+2)=='=') {
count++;
i+=2;
continue;
}
}
if(str.charAt(i+1)=='-') {
count++;
i++;
continue;
}
}
if(str.charAt(i)=='l' && str.charAt(i+1)=='j') {
count++;
i++;
continue;
}
if(str.charAt(i)=='n' && str.charAt(i+1)=='j') {
count++;
i++;
continue;
}
if(str.charAt(i)=='s' && str.charAt(i+1)=='=') {
count++;
i++;
continue;
}
if(str.charAt(i)=='z' && str.charAt(i+1)=='=') {
count++;
i++;
continue;
}
}
count++;
}
System.out.println(count);
}
}
#2. 5622 다이얼
브론즈 2
https://www.acmicpc.net/problem/5622
5622번: 다이얼
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.
www.acmicpc.net
정답코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
String str = s.nextLine();
int time = 0;
for(int i=0; i<str.length(); i++) {
switch(str.charAt(i)) {
case 'A':
case 'B':
case 'C':
time+=3;
break;
case 'D':
case 'E':
case 'F':
time+=4;
break;
case 'G':
case 'H':
case 'I':
time+=5;
break;
case 'J':
case 'K':
case 'L':
time+=6;
break;
case 'M':
case 'N':
case 'O':
time+=7;
break;
case 'P':
case 'Q':
case 'R':
case 'S':
time+=8;
break;
case 'T':
case 'U':
case 'V':
time+=9;
break;
case 'W':
case 'X':
case 'Y':
case 'Z':
time+=10;
break;
}
}
System.out.println(time);
}
}
#3. 10811 바구니 뒤집기
브론즈 2
https://www.acmicpc.net/problem/10811
10811번: 바구니 뒤집기
도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2
www.acmicpc.net
정답 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int n = s.nextInt();
int m = s.nextInt();
int [] arr = new int[n];
for(int i=0; i<n; i++) {
arr[i]=i+1;
}
while(m>0) {
int i=s.nextInt()-1; //-1해줘서 인덱스로 변환!
int j=s.nextInt()-1;
int count = 0;
if((j-i)%2==0) { //바꾸는 횟수 count
count=(j-i)/2;
} else {
count=((j-i)+1)/2;
}
int temp=0;
for(int k=0; k<count; k++) {
temp=arr[i+k];
arr[i+k]=arr[j-k];
arr[j-k]=temp;
}
m--;
}
for(int k=0; k<n; k++) {
System.out.print(arr[k]+" ");
}
}
}
사담 ) 카드 역배치 문제랑 비슷한 문제인데! 다 풀고 그 코드를 보니 살짝 다른 풀이에 신기했다.
과거의 나와는 살짝 다른 코드를, 전보다 더 수월하게 빨리 풀었다! 히히. 카드 역배치 문제는 똑같이 구간 내의 배열을 뒤집는건데 한참 풀었었거든요! 암튼 오늘 뭔가 문제가 술술 풀린다! 쉬운 문제들이지만 .. ><ㅎ..
#4. 2579 계단 오르기★
미해결
실버 3
https://www.acmicpc.net/problem/2579
2579번: 계단 오르기
계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. <그림 1>과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점
www.acmicpc.net
'기록 > EC.crew 정기 모임 정리' 카테고리의 다른 글
[DEC.crew] 20230815 정모 ; 미래 설계 발표 ✨ (0) | 2023.08.15 |
---|---|
[ java를 자바라 ] static / 싱글톤 패턴 / final (0) | 2023.05.08 |
230320 EC.crew 4기 2주차 정모 (★백준 1004 어린왕자) (0) | 2023.03.20 |
221117 EC.crew : 스택과 큐 (0) | 2022.11.18 |
221110 EC.crew : 그리디 알고리즘 (0) | 2022.11.10 |