본문 바로가기

반응형

건승하고있어요/알고리즘

(32)
[1차배열] OX 퀴즈 문제: "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고 X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제가지 연속된 O개의 개수가 된다. 예를 들어 10번 문제의 점수는 3이 된다. "OOXXOXXOOO"의 점수는 1+2+0+0+1+0+0+1+2+3=10점이다. OX퀴즈의 결과가 주어졌을 때, 점수를 구하는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/8958) 입력:첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 길이가 0보다 크고 80보다 작은 문자열이 주어진다. 문자열은 O와 X만으로 이루어져 있다. 저 "각 테스트는 한 줄로 이루어져 있고" 를 이해 못해서 계속..
[if] 더하기 사이클 문제: 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, 주어진 수의 가장 오른쪽 자리 숫자와 앞에서 구한 합의 가장 오른쪽 자리 숫자를 이어 붙이면 새로운 수를 만들 수 있다. 다음 예를 보자. 26부터 시작한다. 2+6=8이다. 새로운 숫자는 68이다. 6+8=14이다. 새로운 숫자는 84이다. 8+4=12이다. 새로운 숫자는 12이다. 새로운 숫자는 4+2=6이다. 새로운 숫자는 26이다. 위의 예는 4번만에 원래 숫자로 돌아올 수 있다. 따라서 26의 사이클의 길이는 4이다. N이 주어졌을 때, N의 사이클의 길이를 구하는 프로그램을 작성하시오..
[if] 평균은 넘겠지 / printf() 메소드 정리 문제: 대학생 새내기들의 90%는 자신이 반에서 평균은 넘는다고 생각한다. 당신은 그들에게 슬픈 진실을 알려줘야 한다.첫째줄에는 테스트 케이스 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 첫 수로 정수 N(1
[for] 2007년 달력문제 문제: 오늘은 2007년 1월 1일 월요일이다. 그렇다면 2007년 x월 y일은 무슨 요일일까? 이를 알아내는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/1924) ㅠ_ㅠ힌트를 주신 스승님께 무한한 감사를 드립니다. 최고멋쪙 어... 나는 일일이 하나하나 요일을 계산하고 바보같이 실마리를 하나도 풀지 못했는데, 일단위로 더하기 하는 개념으로 가면 좋다는 스승님의 힌트에 코드를 짤 수 있었습니다! 넘나 감격스러운 거 사실 이 문제를 어떻게 풀어야 할지 아예 감을 잡지 못했었다. 그러니 나도 예를 다시 들어보자면,3월 21일이 무슨 요일인지 알고 싶다고 해보자. 그러면 1월=>31일, 2월=>28일, 그리고 21일 이렇게 지나야 한다. 31 + 28 + 21인데,..
[소수] 소수찾기 문제: 주어진 수 N개 중에서 소수가 몇 개인지 찾아서 출력하는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/1978) 고등학교 때의 수학지식을 꺼내지 않을 수 없었다.소수는 약수가 1과 자기 자신, 2개일 때 그 수를 소수라 했다. 그리고 1은 소수가 아니다. 약수가 자기 자신 1개니까. 라고 외움.ㅋㅋ 짧게 끝날 수 있었던 문제였는데 웬 1이 인식이 안 돼서 참 거지같은 코드가 되었다. for(int i=0 ; i
[1차원배열] 숫자의 개수 문제: 세 개의 자연수 A, B, C가 주어질 때 A*B*C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/2577) 처음에 이 문제를 접했을 때는 곱한 수를 배열에 다 넣을 생각을 했다. 그리고 0부터 9까지 cnt를 만들어서 if문으로 만들어 일일이 대조할 생각을 했다. 막상 해 보니 cnt를 10개를 만들어야 하고 if문을 10개를 만들어야 하고 println을 10번을 써야했다. ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 아무리 생각해도 이건 방법이 아닌 것 같았다. 하물며 변수라도 포문을 돌릴 수 있으면 좋았을텐데 그럴 수도 없으니 무조건 이건 아니었다. 아마 될 지도 모르지 대신 코드와 메모리가..
[if] X보다 작은 수 문제: 정수 N개로 이루어진 수열 A와 정수 X가 주어진다. 이 때, A에서 X보다 작은 수를 모두 출력하는 프로그램을 작성하시오. (출처: https://www.acmicpc.net/problem/10871) 이 문제는 예외처리를 엄청 고민했다.어떤 고민이었냐면 예외처리를 할까 말까하는 고민...왠지 문제 풀 때마다 예외처리를 나만 하는거 같은 기분이 들었다.다른 사람들은 아무도 안 하는거 같은 느낌어디서인가 지나가면서 봤는데, 주어지는 조건은 조건에 맞는 숫자를 넣어준다는 얘기라고..나처럼 하나하나 고민해서 예외처리를 하는 것은 코드의 줄만 늘이는 것뿐이라고... 그래서 할까말까 고민하다 그냥 안 하고 코드 넣어서 틀리면 그 때 예외처리를 하자! 하고 우선 넣어봤는데맞았다. 이제 예외처리란 없다.안한..
[if] 평균구하기 문제: 세준이는 기말고사를 망쳤다. 세준이는 점수를 조작해서 집에 가져가기로 했다. 일단 세준이는 자기 점수 중에 최대값을 골랐다. 이 값을 M이라 한다. 그리고 나서 모든 점수를 점수/M*100으로 고쳤다. 예를 들어 세준이의 최고점이 70점이고 수학점수가 50이었으면 수학점수는 50/70*100이 되어 71.43점이 된다. 세준이의 성적을 위의 방법대로 새로 계산했을 때 새로운 평균을 구하는 프로그램을 작성하시오.(출처: https://www.acmicpc.net/problem/1546) 잊지말자 ★데이터타입★ 순전히 자료형 생각 못해서 자꾸 바보같이 굴었던 문제. for(int i=0 ; i

반응형